Skip to content

Commit 00af1c5

Browse files
committed
Feat: 33. Search in Rotated Sorted Array
1 parent eb67f6d commit 00af1c5

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* https://leetcode.com/problems/search-in-rotated-sorted-array
3+
* T.C. O(log n)
4+
* S.C. O(1)
5+
*/
6+
function search(nums: number[], target: number): number {
7+
let left = 0;
8+
let right = nums.length - 1;
9+
10+
while (left <= right) {
11+
let mid = left + ((right - left) >> 1);
12+
13+
if (nums[mid] === target) {
14+
return mid;
15+
}
16+
17+
if (nums[left] <= nums[mid]) {
18+
if (nums[left] <= target && target < nums[mid]) {
19+
right = mid - 1;
20+
} else {
21+
left = mid + 1;
22+
}
23+
} else {
24+
if (nums[mid] < target && target <= nums[right]) {
25+
left = mid + 1;
26+
} else {
27+
right = mid - 1;
28+
}
29+
}
30+
}
31+
return -1;
32+
}

0 commit comments

Comments
 (0)