class Solution { public int minArray(int[] numbers) { int n = numbers.length; if(n == 1) return numbers[0]; if(n == 2) return Math.min(numbers[0],numbers[1]); for(int i = 1;i<numbers.length-1;i++){ if(numbers[i]< numbers[i-1] && numbers[i] <= numbers[i+1]){ return numbers[i]; } } return Math.min(numbers[0],numbers[n-1]); } }
方法二:二分法
public int minArray(int[] numbers) { int i = 0, j = numbers.length - 1; while (i < j) { int m = (i + j) / 2; if (numbers[m] > numbers[j]) i = m + 1; else if (numbers[m] < numbers[j]) j = m; else j--; } return numbers[i]; }