852. Peak Index in a Mountain Array 发表于 2022-02-06 Binary Search1234567891011121314151617class Solution { public int peakIndexInMountainArray(int[] arr) { int i = 0, j = arr.length - 2; // [i, j] int peakIndex = 0; while (i <= j) { int mid = (i + j) >>> 1; if (arr[mid] < arr[mid + 1]) { i = mid + 1; } else { peakIndex = mid; j = mid - 1; } } return peakIndex; }} Binary Search123456789101112131415161718class Solution { public int peakIndexInMountainArray(int[] arr) { // 山脉数组的特点:前半部分递增,后半部分递减,我们每次判断中点位于前半部分还是后半部分即可 int left = 0, right = arr.length - 1; while (left < right) { int mid = (left + right) >>> 1; if (arr[mid] < arr[mid + 1]) { // 当前中点在前半部分 left = mid + 1; } else { // 当前中点在后半部分 right = mid; } } return left; }} Reference852. Peak Index in a Mountain Array剑指 Offer II 069. 山峰数组的顶部