File tree Expand file tree Collapse file tree 1 file changed +17
-20
lines changed Expand file tree Collapse file tree 1 file changed +17
-20
lines changed Original file line number Diff line number Diff line change 1
1
/**
2
- * https://leetcode.com/problems/intersection-of-two-arrays-ii/
2
+ * 哈希表
3
3
*
4
- * 350. Intersection of Two Arrays II
4
+ * 时间复杂度 O(m + n)
5
+ * 空间复杂度 O(min(m + n))
5
6
*
6
- * Easy
7
- *
8
- * 60ms 90.22%
9
- * 35.7mb 25.12%
10
7
*/
11
8
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 ) ;
18
14
}
19
- map . set ( num , map . get ( num ) + 1 )
15
+ record . set ( item , record . get ( item ) + 1 ) ;
20
16
}
21
17
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 ) ;
28
25
}
29
26
}
30
27
31
- return result
28
+ return ans ;
32
29
}
You can’t perform that action at this time.
0 commit comments