Leetcode 81. 搜索旋转排序数组 II

和Leetcode 33. 搜索旋转排序数组类似,特殊处理下起始的一些元素即可

class Solution {
public:
    #define val(x) (x<=y? x+0x3f3f3f3f:x)
    bool search(vector<int>& nums, int target) {
        if(nums.empty()) return false;
        int y=nums[0];
        if(y==target) return true;
        int k=0;
        while(k0x3f3f3f3f;
        int l = 0, r = (int)nums.size() - 1;
        while (l <= r) {
            int mid = (l + r) >> 1;
            if (val(nums[mid]) > val(target)) r = mid - 1;
            else if (val(nums[mid]) < val(target)) l = mid + 1;
            else return true;
        }
        return false;
    }

};

你可能感兴趣的:(Leetcode 81. 搜索旋转排序数组 II)