81. Search in Rotated Sorted Array II

来源:互联网 发布:vb value = 编辑:程序博客网 时间:2024/04/19 18:35

Follow up for “Search in Rotated Sorted Array”:
What if duplicates are allowed?

Would this affect the run-time complexity? How and why?

Write a function to determine if a given target is in the array.

代码

class Solution {public:   int search(vector<int>& nums, int target)    {                                     int n=nums.size();    if(n==0) return -1;    int l=0,r=n-1;    while(l<r)    {                  int mid=(l+r)/2;        if(target==nums[mid]) return mid;        if(nums[l]<=nums[mid])        {            if(target>=nums[l]&&target<nums[mid]) r=mid-1;            else l=mid+1;        }        else if(nums[mid]<=nums[r])        {            if(target>nums[mid]&&target<=nums[r]) l=mid+1;            else r=mid-1;        }    }    return nums[l]==target?l:-1;   }};
0 0
原创粉丝点击