把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。輸入一個非遞減排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。NOTE:給出的所有元素都大於0,若數組大小爲0,請返回0。
思路從代碼能清楚地讀出來
Java代碼:
public int minNumberInRotateArray(int [] array) {
int start=0;
int end=array.length-1;
int mid=start;
while(array[start]>=array[end]){
if(end-start==1){
mid=end;
break;
}
mid=(start+end)/2;
if(array[mid]>=array[start]){
start=mid;
}else if(array[mid]<=array[end]){
end=mid;
}
}
return array[end];
}