33. Search in Rotated Sorted Array
https://leetcode.com/problems/search-in-rotated-sorted-array/
/*
* @lc app=leetcode id=33 lang=cpp
*
* [33] Search in Rotated Sorted Array
*/
// @lc code=start
class Solution {
public:
int search(vector<int>& nums, int target) {
if (nums.size() == 0) return -1;
int start = 0, end = nums.size() - 1;
while (start < end) {
int mid = start + (end - start) / 2;
if (target >= nums[0]) {
if (nums[mid] >= nums[0] && nums[mid] < target) start = mid + 1;
else end = mid;
} else {
if (!(nums[mid] < nums[0] && nums[mid] >= target)) start = mid + 1;
else end = mid;
}
}
return nums[start] == target ? start : -1;
}
};
// @lc code=end
Last updated