LeetCode–旋轉陣列的最小數字
博客說明
文章所涉及的資料來自互聯網整理和個人總結,意在于個人學習和經驗匯總,如有什么地方侵權,請聯系本人洗掉,謝謝!
介紹
劍指 Offer 11. 旋轉陣列的最小數字
主站154題,153的延伸
題目
把一個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉,輸入一個遞增排序的陣列的一個旋轉,輸出旋轉陣列的最小元素,例如,陣列 [3,4,5,1,2] 為 [1,2,3,4,5] 的一個旋轉,該陣列的最小值為1,
示例 1:
輸入:[3,4,5,1,2]
輸出:1
示例 2:
輸入:[2,2,2,0,1]
輸出:0
代碼
class Solution {
public int minArray(int[] numbers) {
//第一個元素
int low = 0;
int high = numbers.length - 1;
while(low < high){
//中間輔助
int pivot = low + (high - low)/2;
if(numbers[pivot] < numbers[high]){
high = pivot;
}else if(numbers[pivot] > numbers[high]){
low = pivot +1;
}else{
high --;
}
}
return numbers[low];
}
}
感謝
Leetcode
以及勤勞的自己,個人博客,GitHub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27417.html
標籤:Java

