首页 > 其他 > 详细

LeetCode:81. Search in Rotated Sorted Array II

时间:2016-03-24 08:43:01      阅读:240      评论:0      收藏:0      [点我收藏+]

这题是在32. Search in Rotated Sorted Array I的基础上,处理特殊情况有重复数据的问题,有两个代表例子

如3,1,1和1,1,3,1只需在原基础上考虑这两种请求,完善上一题的分类思想,还有就是二分查找的迭代会完成接

下来的事情

class Solution {
public:
    bool search(vector<int>& nums, int target) {
        int low,high;
        int media;
            
        low = 0;
        high = nums.size() - 1;
       
        
        while(low <= high){
            
            
            media = (high+low) / 2;

            if(nums[media] == target)
                return true;

            
           if(nums[media] < nums[high])
    			if(nums[media] < target && target <= nums[high])
    				low = media + 1;
    			else
    				high = media - 1;
	       else if(nums[media] > nums[high])
    			if(nums[low] <= target && target < nums[media])
    				high = media - 1;
    			else 
    				low = media + 1;
    	   else 
    	        if(nums[high] != nums[low])
    	            high = media - 1;
    	        else
                    high = high - 1;

        }
        
        return false;
    }
};

 

LeetCode:81. Search in Rotated Sorted Array II

原文:http://www.cnblogs.com/jackes/p/5313951.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!