Skip to content

Commit 74e2c9e

Browse files
committed
349. 两个数组的交集
1 parent 43ed9b0 commit 74e2c9e

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

algorithms/intersection-of-two-arrays.js

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,21 @@
44
* @return {number[]}
55
*/
66

7-
// 方法一:哈希表(降低时间复杂度)
7+
// 方法一: 集合
8+
var intersection = function (nums1, nums2) {
9+
const s = new Set(nums1);
10+
const resultSet = new Set();
11+
12+
for (let item of nums2) {
13+
if (s.has(item)) {
14+
resultSet.add(item);
15+
}
16+
}
17+
18+
return Array.from(resultSet);
19+
};
20+
21+
// 方法二:哈希表(降低时间复杂度)
822
var intersection = function (nums1, nums2) {
923
const result = [];
1024
const nums2Obj = {};
@@ -14,28 +28,27 @@ var intersection = function (nums1, nums2) {
1428
for (let i = 0; i < nums2.length; i++) {
1529
nums2Obj[nums2[i]] = true;
1630
}
17-
1831
for (let i = 0; i < nums1.length; i++) {
1932
const curr = nums1[i];
20-
2133
if (nums2Obj[curr] && !occured[curr]) {
2234
occured[curr] = true;
23-
2435
result.push(nums1[i]);
2536
}
2637
}
2738

2839
return result;
2940
};
3041

31-
// 方法二:排序 + 双指针
42+
// 方法三:排序 + 双指针
3243
var intersection = function (nums1, nums2) {
3344
nums1.sort((a, b) => a - b);
3445
nums2.sort((a, b) => a - b);
3546

3647
let len1 = nums1.length;
3748
let len2 = nums2.length;
38-
let l1, l2, result = [];
49+
let l1,
50+
l2,
51+
result = [];
3952
l1 = l2 = 0;
4053

4154
// 上一次出现相等的数字

0 commit comments

Comments
 (0)