File tree Expand file tree Collapse file tree 1 file changed +9
-20
lines changed Expand file tree Collapse file tree 1 file changed +9
-20
lines changed Original file line number Diff line number Diff line change 1
- // Time complexity: O(nlogn )
1
+ // Time complexity: O(n )
2
2
// Space complexity: O(n)
3
3
4
4
/**
7
7
* @return {number[] }
8
8
*/
9
9
var twoSum = function ( nums , target ) {
10
- const n = nums . length ;
10
+ const map = new Map ( ) ;
11
11
12
- const mappedNums = nums . map ( ( num , i ) => [ num , i ] ) ;
13
- mappedNums . sort ( ( a , b ) => a [ 0 ] - b [ 0 ] ) ;
12
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
13
+ const num = nums [ i ] ;
14
+ const diff = target - num ;
14
15
15
- let left = 0 ;
16
- let right = n - 1 ;
17
-
18
- while ( left < right ) {
19
- const sum = mappedNums [ left ] [ 0 ] + mappedNums [ right ] [ 0 ] ;
20
-
21
- if ( sum > target ) {
22
- right -- ;
23
- continue ;
16
+ if ( map . has ( diff ) ) {
17
+ return [ i , map . get ( diff ) ] ;
18
+ } else {
19
+ map . set ( num , i ) ;
24
20
}
25
-
26
- if ( sum < target ) {
27
- left ++ ;
28
- continue ;
29
- }
30
-
31
- return [ mappedNums [ left ] [ 1 ] , mappedNums [ right ] [ 1 ] ] ;
32
21
}
33
22
} ;
You can’t perform that action at this time.
0 commit comments