把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個遞增排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如,數組 [3,4,5,1,2] 為 [1,2,3,4,5] 的一個旋轉,該數組的最小值為1。
示例 1:
輸入:[3,4,5,1,2]
輸出:1
代碼
class Solution {public int minArray(int[] numbers) {int left=0,right=numbers.length-1;if(numbers.length==1) return numbers[0];while (left<right){int mid=((right-left)>>1)+left;if(numbers[mid]<numbers[right])//旋轉點在右邊區間right=mid;else if(numbers[mid]>numbers[right])//旋轉點在左邊區間left=mid+1;else right--;//出現相等則縮小邊界}return numbers[left];}
}