【劍指offer】面試題 11. 旋轉數組的最小數字
阿新 • • 發佈:2018-05-12
最小數 urn 數字 number ret .so 所有 ID 元素
面試題 11. 旋轉數組的最小數字
題目描述
題目:把一個數組最開始的若幹個元素搬到數組的末尾,我們稱之為數組的旋轉。 輸入一個非遞減排序的數組的一個旋轉,
輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該數組的最小值為1。
NOTE:給出的所有元素都大於0,若數組大小為0,請返回0。
解答
復雜度:O(logN) + O(1)
public class Solution { public int minNumberInRotateArray(int [] array) { if(array==null||array.length==0) return 0; int left = 0,right = array.length - 1; while(left<right){ int mid = left + (right - left)/2; if(array[mid]<=array[right]){ right = mid; }else{ left = mid + 1; } } return array[left]; /*if(array==null||array.length==0) return 0; Arrays.sort(array); return array[0]; */ } }
【劍指offer】面試題 11. 旋轉數組的最小數字