Skip to content

Commit 0377bce

Browse files
committed
Search in Rotated Sorted Array Solution
1 parent a0be0b8 commit 0377bce

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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+
};

0 commit comments

Comments
ย (0)