import java.util.ArrayList;
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        if(array.length==0) return 0;
     int start = 0;
      int end = array.length-1;
        while(start <= end){
            if(array[start] < array[end]){
                return array[start];
            }
         int mid = (end+start)>>1 ;
      if(array[start]==array[end] && array[start]==array[mid]){//有相同的元素
          int ret = array[start];
          for(int i=start+1;i<end;i++){
              if(array[i]< ret){
                  ret = array[i];
              }
          }
          return ret;
      }else if(array[start] < array[mid]){
                    start=mid;
           }else{
                    end--;
                    start++;
                }
        }

        return array[start];
    }
}

我感觉这题很神奇 ....改着改着就过了