33. Search in Rotated Sorted Array

来源:互联网 发布:cnc编程代码 编辑:程序博客网 时间:2024/06/09 19:21
class Solution {public:    int search(vector<int>& nums, int target) {        int start,end,mid;        start=0;        end=nums.size()-1;        while(start<=end)        {            mid=(start+end)/2;            if(nums[mid]==target)                return mid;            else if(nums[mid]<nums[start]&&nums[mid]<nums[end])            {                if(target>nums[mid]&&target<=nums[end])                {                    start=mid+1;                }                else                {                    end=mid-1;                }            }            else if(nums[mid]>nums[start]&&nums[mid]>nums[end])            {                if(target>=nums[start]&&target<nums[mid])                {                    end=mid-1;                }                else                {                    start=mid+1;                }            }            else if(nums[mid]>nums[start]&&nums[mid]<nums[end])            {                if(target<=nums[end]&&target>nums[mid])                {                    start=mid+1;                }                else                 {                    end=mid-1;                }            }            else            {                start++;            }        }        return -1;    }};
0 0
原创粉丝点击