File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed
search-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์ ๋ ฌ๋ ๋ฐฐ์ด์ target ๋ฌธ์์ ์ธ๋ฑ์ค ์ฐพ๊ธฐ
3
+ * ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋
4
+ * - ์๊ฐ ๋ณต์ก๋: O(logn)
5
+ * - ๊ณต๊ฐ ๋ณต์ก๋: O(1)
6
+ * @param nums
7
+ * @param target
8
+ */
9
+ function search ( nums : number [ ] , target : number ) : number {
10
+ // findIndex ๋ ์๊ฐ๋ณต์ก๋ O(n) ์
11
+ // return nums.findIndex(value => value === target)?? -1
12
+
13
+ // ์ ๋ ฌ๋์ด ์๋ ํน์ฑ์ ์ด์ฉํ ํ์ด
14
+ let low = 0 ;
15
+ let high = nums . length - 1 ;
16
+ while ( low <= high ) {
17
+ let mid = low + Math . floor ( ( high - low ) / 2 ) ;
18
+
19
+ if ( nums [ mid ] === target ) return mid
20
+
21
+ if ( nums [ low ] <= nums [ mid ] ) {
22
+ if ( nums [ low ] <= target && target < nums [ mid ] ) {
23
+ high = mid - 1 ;
24
+ } else {
25
+ low = mid + 1 ;
26
+ }
27
+ } else {
28
+ if ( nums [ mid ] < target && target <= nums [ high ] ) {
29
+ low = mid + 1 ;
30
+ } else {
31
+ high = mid - 1 ;
32
+ }
33
+ }
34
+
35
+ }
36
+
37
+ return - 1
38
+ }
You canโt perform that action at this time.
0 commit comments