explanation
这道题规定一定是先上升,最后下降的数组,一定有peak,且相邻两数不同
找任意一个peak
code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public class {
public int findPeak(int[] A) {
int start = 0, end = A.length - 1; while (start + 1 < end) { int mid = start + (end - start) / 2; if (A[mid] < A[mid - 1]) { end = mid; } else { start = mid; } } if (A[start] < A[end]) { return end; } else { return start; }
} }
|
近期评论