给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]
说明:
- 输出结果中的每个元素一定是唯一的。
- 我们可以不考虑输出结果的顺序。
解法1:set去重筛选
var intersection = function (nums1, nums2) {const set1 = new Set(nums1);const set2 = new Set(nums2);const set = [...set1].filter(item => set2.has(item));return set;};
解法2:
intersection = function (nums1, nums2) {const longNum = nums1.length <= nums2.length ? nums2 : nums1;const shortNum = nums1.length > nums2.length ? nums2 : nums1;let value;let result = [];while ((value = shortNum.shift()) !== undefined) {const index1 = result.findIndex(item => item === value);const index2 = longNum.findIndex(item => item === value);if (index1 === -1 && index2 >= 0) {result.push(value);}}return result;}
