File tree Expand file tree Collapse file tree 2 files changed +54
-0
lines changed
search-in-rotated-sorted-array Expand file tree Collapse file tree 2 files changed +54
-0
lines changed Original file line number Diff line number Diff line change
1
+ // 시간복잡도: O(n)
2
+ // 공간복잡도: O(1)
3
+
4
+ /**
5
+ * @param {number[] } nums
6
+ * @return {boolean }
7
+ */
8
+ var canJump = function ( nums ) {
9
+ let fast = 0 ;
10
+
11
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
12
+ if ( i > 0 && i > fast ) return false
13
+
14
+ fast = Math . max ( fast , i + nums [ i ] )
15
+
16
+ if ( fast >= nums . length - 1 ) return true
17
+ }
18
+
19
+ return false
20
+ } ;
Original file line number Diff line number Diff line change
1
+ // 시간복잡도: O(log n)
2
+ // 공간복잡도: O(1)
3
+
4
+ /**
5
+ * @param {number[] } nums
6
+ * @param {number } target
7
+ * @return {number }
8
+ */
9
+ var search = function ( nums , target ) {
10
+ let leftIdx = 0 ;
11
+ let rightIdx = nums . length - 1 ;
12
+
13
+ while ( leftIdx <= rightIdx ) {
14
+ const midIdx = Math . floor ( ( leftIdx + rightIdx ) / 2 ) ;
15
+
16
+ if ( nums [ midIdx ] === target ) return midIdx ;
17
+
18
+ if ( nums [ leftIdx ] <= nums [ midIdx ] ) {
19
+ if ( nums [ leftIdx ] <= target && nums [ midIdx ] >= target ) {
20
+ rightIdx = midIdx - 1 ;
21
+ } else {
22
+ leftIdx = midIdx + 1 ;
23
+ }
24
+ } else {
25
+ if ( nums [ rightIdx ] >= target && nums [ midIdx ] <= target ) {
26
+ leftIdx = midIdx + 1 ;
27
+ } else {
28
+ rightIdx = midIdx - 1 ;
29
+ }
30
+ }
31
+ }
32
+
33
+ return - 1
34
+ } ;
You can’t perform that action at this time.
0 commit comments