阿鑫来了  

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;
    }
};

 

posted on 2021-09-13 16:19  阿鑫来了  阅读(28)  评论(0)    收藏  举报