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