LeetCode:66.搜索旋转排序数组
目录
1.搜索旋转排序数组
1.搜索旋转排序数组
旋转后的数组分为了左右两个有序的区间,我们首先需要判断mid落在左部分还是右部分,确定区间后的判断target在mid的左边还是右边
class Solution {
public:int search(vector<int>& nums, int target) {int n = nums.size();if(n == 0) return -1;int left = 0, right = n - 1;while(left <= right){int mid = left + (right - left) / 2;if(nums[mid] == target) return mid;if(nums[0] <= nums[mid]){if(nums[0] <= target && nums[mid] > target)right = mid - 1;elseleft = mid + 1;}else{if(nums[mid] < target && nums[right] >= target)left = mid + 1;elseright = mid - 1;}}return -1;}
};