您的位置:首页 > 其它

leetcode--Search in Rotated Sorted Array II

2017-08-08 11:19 337 查看
Follow up for "Search in Rotated Sorted Array":

What if duplicates are allowed?

Would this affect the run-time complexity? How and why?

Write a function to determine if a given target is in the array.

题意:和leetcode--Search in Rotated Sorted Array一样,但是数组中可能出现重复元素

分类:数组,二分法

解法1:如果遇到无法判断在哪边的元素,说明是重复元素,这时只能遍历查找了

[java] view
plain copy

public class Solution {  

    public boolean search(int[] nums, int target) {  

        int low = 0;  

        int high = nums.length-1;      

        while(low<=high){  

            int mid = (low+high)/2;           

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

            if(nums[mid]>nums[low]){//如果mid属于左边  

                if(nums[mid]>target && nums[low]<=target){//如果target属于左边  

                    high = mid-1;  

                }else{  

                    low = mid+1;  

                }  

            }else if(nums[mid]<nums[low]){//如果mid属于右边  

                if(target>nums[mid] && target<=nums[high]){  

                    low = mid+1;    

                }else{  

                    high = mid-1;  

                }  

            }else{  

                for(int i=low;i<=mid;i++){  

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

                }  

                low = mid+1;  

            }  

        }  

        return false;  

    }  

}  

原文链接http://blog.csdn.net/crazy__chen/article/details/46427185
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: