LeetCode || Search in Rotated Sorted Array II

来源:互联网 发布:java classloader原理 编辑:程序博客网 时间:2024/04/30 11:39
class Solution {public:    bool search(vector<int>& nums, int target) {        int i = 0, j = nums.size()-1;        int m = i;                if(i < j && nums[i] == nums[j])        {            return SearchInOrder(nums, i, j, target);        }        while(i <= j)        {            m = (i+j)/2;                        if(nums[m] == target || nums[i] == target)                return true;                        if(m == i)            {                i++;                continue;            }                        if(target > nums[i])            {                if(nums[m] >= nums[i] && target > nums[m])//注意等号的情况                    i = m;                else                    j = m;            }            else            {                if(nums[m] < nums[i] && target < nums[m])//这个时候两个条件都没有等号                    j = m;                else                    i = m;            }                    }        return false;    }        bool SearchInOrder(vector<int>& nums, int s, int e, int t)    {        int m = s;        while(m <= e)        {            if(nums[m] == t)                return true;            m++;        }        return false;    }};



0 0