劍指 Offer 11. 旋轉陣列的最小數字 Java
阿新 • • 發佈:2020-07-22
可以想到,陣列中會出現“斷層”,直接遍歷一次即可。不存在【1,2,3,4,5】旋轉成【5,4,3,2,1】的情況。
暴力法(我感覺還行啊,為什麼被叫暴力):
class Solution { public int minArray(int[] numbers) { int n = numbers.length; for(int i=0;i<n-1;i++){ if(numbers[i+1] < numbers[i]){ return numbers[i+1]; } } return numbers[0]; } }
二分查詢法:(LeetCode上直接粘的):
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 -= 1; } } return numbers[low]; } } 作者:LeetCode-Solution 連結:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/solution/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-by-leetcode-s/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。