集合
Set
- add
- has
- delete
349. 两个数组的交集
给定两个数组,编写一个函数来计算它们的交集。
/*** @param {number[]} nums1* @param {number[]} nums2* @return {number[]}*/var intersection = function (nums1, nums2) {return [...new Set(nums1)].filter(item => nums2.includes(item))};
字典
Map
- set
- get
- delete
- clear
- 349
- 20
1. 两数之和
/** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function (nums, target) { const map = new Map() for (let i = 0; i < nums.length; i++) { const n1 = nums[i]; const n2 = target - n1; if (map.has(n2)) { return [map.get(n2), i] } else { map.set(n1, i) } } };3. 无重复字符的最长子串
```javascript 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
//滑动窗口
```javascript
var lengthOfLongestSubstring = function (s) {
let l = 0;
let res = 0;
const map = new Map();
for (let r = 0; r < s.length; r++) {
if (map.has(s[r]) && map.get(s[r]) >= l) {
l = map.get(s[r]) + 1
}
res = Math.max(res, r - l + 1)
map.set(s[r], r)
}
return res
};
