81. Search in Rotated Sorted Array II LeetCode

来源:互联网 发布:有密软件 编辑:程序博客网 时间:2024/05/16 00:26

题意:在旋转数组中查找一个数,与之前不同的是旋转数组里面会有重复的数字出现。
题解:一样的套路,旋转之后的数组,要么是一段连续递增的,要么是两段,分情况讨论二分。

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