思路:
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
if(array.length==0||array==null)
return 0;
int i=0;
int j=array.length-1;
int mid=0; //这很重要!如果是把数组前面0个元素搬到最后,
while(array[i]>=array[j]){ //将不会进入循环,直接返回array[0].
if(j==i+1){
mid=j;
break;
}
mid=(i+j)/2;
if(array[i]==array[j] && array[mid]==array[i])
return MinNum(array,i,j);
if(array[i]<=array[mid]){
i=mid;
}else if(array[i]>=array[mid]){
j=mid;
}
}
return array[mid];
}
int MinNum(int[] array, int i, int j){
int min=array[i];
for(int k=i+1;k<=j;k++){
if(array[k]<min)
min=array[k];
}
return min;
}
}