首页 > 代码库 > Find Minimum in Rotated Sorted Array II

Find Minimum in Rotated Sorted Array II

Follow up for "Find Minimum in Rotated Sorted Array":
What if duplicates are allowed?

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

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

Find the minimum element.

The array may contain duplicates.

答案

public class Solution {
    int []num;
    public int findMin(int start,int end)
    {
        if(start==end)
        {
            return num[start];
        }
        if(num[start]==num[end])
        {
            return findMin(start+1,end);
        }
        int middle=start+((end-start)>>1);
        if(num[middle]>num[end])
        {
            return findMin(middle+1,end);
        }
        return findMin(start,middle);
    }
    public int findMin(int[] num) {
        this.num=num;
        return findMin(0,num.length-1);
    }
}


 
ArrayBinary Search

Find Minimum in Rotated Sorted Array II