33. 搜索旋转排序数组 - 力扣(LeetCode) (leetcode-cn.com)
class Solution { public: int search(vector<int>& nums, int target) { int left = 0, right = nums.size()-1; while(left <= right){ int mid = (left+right)/2; if(nums[mid] == target) return mid; if(nums[mid] >= nums[left]){ //说明前半段有序 if(target >= nums[left] && target < nums[mid]){ right = mid-1; //说明target在前半段 }else{ left = mid+1; //说明在后半段 } }else if(nums[mid] < nums[left]){ //说明在后半段 if(target > nums[mid] && target <= nums[right]){ left = mid+1; //说明在后半段 }else{ right = mid-1; //说明在后半段 } } } return -1; } };

浙公网安备 33010602011771号