File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ // 시간복잡도 O(n log n)
2
+ // 공간복잡도 O(n)
3
+
4
+ /**
5
+ * @param {number[] } nums
6
+ * @param {number } target
7
+ * @return {number[] }
8
+ */
9
+ var twoSum = function ( nums , target ) {
10
+
11
+
12
+ const numsArr = nums . map ( ( num , idx ) => [ num , idx ] )
13
+ numsArr . sort ( ( a , b ) => a [ 0 ] - b [ 0 ] )
14
+
15
+
16
+ let leftIdx = 0 ;
17
+ let rightIdx = nums . length - 1 ;
18
+
19
+ while ( leftIdx <= rightIdx ) {
20
+ if ( numsArr [ leftIdx ] [ 0 ] + numsArr [ rightIdx ] [ 0 ] === target ) {
21
+ return [ numsArr [ leftIdx ] [ 1 ] , numsArr [ rightIdx ] [ 1 ] ]
22
+ }
23
+
24
+ if ( numsArr [ rightIdx ] [ 0 ] + numsArr [ leftIdx ] [ 0 ] > target ) {
25
+ rightIdx --
26
+ } else {
27
+ leftIdx ++
28
+ }
29
+ }
30
+ return [ ]
31
+ } ;
32
+
33
+
34
+ const nums = [ 2 , 7 , 11 , 15 ]
35
+ const target = 9
36
+
37
+ console . log ( twoSum ( nums , target ) )
38
+ console . log ( twoSum ( [ 3 , 2 , 4 ] , 6 ) )
39
+ console . log ( twoSum ( [ 3 , 3 ] , 6 ) )
You can’t perform that action at this time.
0 commit comments