File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed
search-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +39
-0
lines changed 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 search = function ( nums , target ) {
7
+ let left = 0 ;
8
+ let right = nums . length - 1 ;
9
+
10
+ while ( left <= right ) {
11
+ const mid = Math . floor ( ( left + right ) / 2 ) ;
12
+
13
+ // ํ๊ฒ์ ์ฐพ์๋ค๋ฉด ์ธ๋ฑ์ค ๋ฐํ
14
+ if ( nums [ mid ] === target ) {
15
+ return mid ;
16
+ }
17
+
18
+ // ์ผ์ชฝ ์ ๋ฐ์ด ์ ๋ ฌ๋์ด ์๋ ๊ฒฝ์ฐ
19
+ if ( nums [ left ] <= nums [ mid ] ) {
20
+ // ํ๊ฒ์ด ์ผ์ชฝ ์ ๋ ฌ๋ ๋ฒ์์ ์๋์ง ํ์ธ
21
+ if ( nums [ left ] <= target && target < nums [ mid ] ) {
22
+ right = mid - 1 ; // ์ผ์ชฝ์ผ๋ก ์ด๋
23
+ } else {
24
+ left = mid + 1 ; // ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋
25
+ }
26
+ }
27
+ // ์ค๋ฅธ์ชฝ ์ ๋ฐ์ด ์ ๋ ฌ๋์ด ์๋ ๊ฒฝ์ฐ
28
+ else {
29
+ // ํ๊ฒ์ด ์ค๋ฅธ์ชฝ ์ ๋ ฌ๋ ๋ฒ์์ ์๋์ง ํ์ธ
30
+ if ( nums [ mid ] < target && target <= nums [ right ] ) {
31
+ left = mid + 1 ; // ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋
32
+ } else {
33
+ right = mid - 1 ; // ์ผ์ชฝ์ผ๋ก ์ด๋
34
+ }
35
+ }
36
+ }
37
+
38
+ return - 1 ; // ํ๊ฒ์ ์ฐพ์ง ๋ชปํจ
39
+ } ;
You canโt perform that action at this time.
0 commit comments