码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode--Search in Rotated Sorted Array II

时间:2015-07-04 14:03:35      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:leetcode

Search in Rotated Sorted Array II

思路:
如同I一样,边界判断是非常重要的,注意<=``>=
因为本题是可重复元素,所以 nums[left]<=nums[mid]无法判断为递增。
需要多一个条件判断,跳过重复的元素。

bool search(int* nums, int numsSize, int target) {
    if(numsSize==0) return false;
    int left=0;
    int right= numsSize-1;
    do{
        int mid = (left+right)/2;
        if(nums[mid]==target) return true;

        if(nums[left]<nums[mid]){
            if(nums[left]<=target && target<nums[mid]){
                right = mid-1;
            }else{
                left = mid+1;
            }
        } else if(nums[left]>nums[mid]){
            if(nums[mid]<target && target<=nums[right]){
                left = mid+1;
            }else{
                right = mid-1;
            }
        } else {
            left++;
        }
    }while(left<=right);
    return false;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode--Search in Rotated Sorted Array II

标签:leetcode

原文地址:http://blog.csdn.net/mennoa/article/details/46754847

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!