两个数组的交集II
/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */ var intersect = function (nums1, nums2) { let ans = [] //结果 for(let i =0;i<nums1.length;i++){ let sub = nums2.indexOf(nums1[i]) //找到元素nums1[i]在nums2中的位置索引 if(sub>-1){ ans.push(nums1[i]) nums2.splice(sub,1) //删除nums2中的nums1[i] } } return ans };
返回俩数组相同元素 哈希表
/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */ var intersect = function (nums1, nums2) { let ans = [], hash = {} for (let i of nums1) { hash[i] ? ++hash[i] : hash[i] = 1 } for (let j in nums2) { let res = hash[j] if (res) { ans.push(j) --hash[j] } } return ans };
返回俩数组相同元素 set
var intersect = function (nums1, nums2) { let s = new Set(nums1) let ans = nums2.filter(v => { return s.has(v) }) return [...new Set(ans)] };