81. Search in Rotated Sorted Array II

来源:互联网 发布:php html实体编码转换 编辑:程序博客网 时间:2024/05/02 13:55
//ac 8ms//本题关键在于如何辨别nums[i]==nums[m]的情景//例如[1 1 1 1 1 3 1 1 1 1 1 1 1]这种情景二分法根本无法判断target在哪个区间,所以这种情况只能逐步查找。class Solution {public:    bool search(vector<int>& nums, int target) {        int i=0,j=nums.size()-1;        while(i<=j)        {            int m=i+(j-i)/2;            if(nums[m]==target) return true;            if(nums[m]>nums[i])            {                if(target>=nums[i]&&target<nums[m]) j=m-1;                else i=m+1;            }            else if(nums[m]<nums[i])            {                if(target>nums[m]&&target<=nums[j]) i=m+1;                else j=m-1;            }            else i++;        }        return false;    }};
0 0