File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @param {number } target
4+ * @return {number[] }
5+ */
6+ var twoSum = function ( nums , target ) {
7+ const map = new Map ( )
8+
9+ for ( let i = 0 ; i < nums . length ; i ++ ) {
10+ map . set ( nums [ i ] , i ) ;
11+ }
12+
13+ for ( let i = 0 ; i < nums . length ; i ++ ) {
14+ const val = nums [ i ] ;
15+ const complement = target - val ;
16+
17+ if ( map . has ( complement ) && map . get ( complement ) !== i ) {
18+ return [ i , map . get ( complement ) ] ;
19+ }
20+ }
21+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @param {number } target
4+ * @return {number[] }
5+ */
6+ var twoSum = function ( nums , target ) {
7+ const indexedNums = nums . map ( ( val , idx ) => ( { val, idx } ) ) ;
8+
9+ indexedNums . sort ( ( a , b ) => a . val - b . val ) ;
10+
11+ let left = 0 ;
12+ let right = nums . length - 1 ;
13+
14+ while ( left < right ) {
15+ const sum = indexedNums [ left ] . val + indexedNums [ right ] . val ;
16+
17+ if ( sum === target ) {
18+ return [ indexedNums [ left ] . idx , indexedNums [ right ] . idx ] ;
19+ } else if ( sum < target ) {
20+ left ++ ;
21+ } else {
22+ right -- ;
23+ }
24+ }
25+ } ;
You can’t perform that action at this time.
0 commit comments