Skip to content

Commit f213489

Browse files
committed
feat(数据结构入门):哈希表解法
1 parent cb28171 commit f213489

File tree

1 file changed

+17
-20
lines changed

1 file changed

+17
-20
lines changed

array/350/solution1.js

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,29 @@
11
/**
2-
* https://leetcode.com/problems/intersection-of-two-arrays-ii/
2+
* 哈希表
33
*
4-
* 350. Intersection of Two Arrays II
4+
* 时间复杂度 O(m + n)
5+
* 空间复杂度 O(min(m + n))
56
*
6-
* Easy
7-
*
8-
* 60ms 90.22%
9-
* 35.7mb 25.12%
107
*/
118
const intersect = (nums1, nums2) => {
12-
const map = new Map()
13-
const result = []
14-
for (let i = 0, max = nums2.length; i < max; i++) {
15-
const num = nums2[i]
16-
if (!map.has(num)) {
17-
map.set(num, 0)
9+
const record = new Map();
10+
for (let i = 0; i < nums1.length; i++) {
11+
const item = nums1[i];
12+
if (!record.has(item)) {
13+
record.set(item, 0);
1814
}
19-
map.set(num, map.get(num) + 1)
15+
record.set(item, record.get(item) + 1);
2016
}
2117

22-
for (let i = 0, max = nums1.length; i < max; i++) {
23-
const num = nums1[i]
24-
const count = map.get(num)
25-
if (count) {
26-
result.push(num)
27-
map.set(num, count - 1)
18+
const ans = [];
19+
20+
for (let i = 0; i < nums2.length; i++) {
21+
const item = nums2[i];
22+
if (record.get(item) > 0) {
23+
record.set(item, record.get(item) - 1);
24+
ans.push(item);
2825
}
2926
}
3027

31-
return result
28+
return ans;
3229
}

0 commit comments

Comments
 (0)