一个数组先升序再降序,用最优时间复杂度,求最大值?例如[1,2,2,2,2,3,1]
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 2, 2, 2, 3, 1};
System.out.println(getMax(arr));
}
public static int getMax(int[] arr) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
int mid = left + ((right - left) >> 1);
if (arr[mid] > arr[mid + 1]) {
right = mid;
} else {
left = mid + 1;
}
}
return arr[left];
}
}
成为不了聪明的人,那就做一个有耐心、肯钻研,坚持不懈,永不放弃的人……

浙公网安备 33010602011771号