Find Minimum in Rotated Sorted Array II

来源:互联网 发布:平衡面板数据 编辑:程序博客网 时间:2024/04/29 00:57

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.

Have you met this question in a real interview? Yes
Example
Given [4,4,5,6,7,0,1,2] return 0

public class Solution {    /**     * @param num: a rotated sorted array     * @return: the minimum number in the array     */    public int findMin(int[] num) {        // write your code here        if(num.length==0)            return -1;        int s =0;        int e=num.length-1;        while(s+1<e){        int m= s+(e-s)/2;        if(num[m]>num[e])            s=m;        else if(num[m]<num[e])            e=m;        else            --e;        }        if(num[s]<num[e])            return num[s];        else            return num[e];    }}
0 0