Skip to content

Commit c331bae

Browse files
committed
feat: Add solution for LeetCode problem 33
1 parent 3629c89 commit c331bae

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//
2+
// 33. Search in Rotated Sorted Array
3+
// https://leetcode.com/problems/search-in-rotated-sorted-array/description/
4+
// Dale-Study
5+
//
6+
// Created by WhiteHyun on 2024/06/10.
7+
//
8+
9+
final class Solution {
10+
func search(_ nums: [Int], _ target: Int) -> Int {
11+
guard nums.count != 1
12+
else {
13+
return nums[0] == target ? 0 : -1
14+
}
15+
16+
var left = 0
17+
var right = nums.count - 1
18+
19+
while left <= right {
20+
let mid = (left + right) >> 1
21+
22+
if nums[mid] == target { return mid }
23+
24+
if nums[left] <= nums[mid] {
25+
if target > nums[mid] || target < nums[left] {
26+
left = mid + 1
27+
} else {
28+
right = mid - 1
29+
}
30+
} else {
31+
if target < nums[mid] || target > nums[right] {
32+
right = mid - 1
33+
} else {
34+
left = mid + 1
35+
}
36+
}
37+
}
38+
39+
return -1
40+
}
41+
}

0 commit comments

Comments
 (0)