一个数组长度为n,其中n=s+t,前s个数为升序排序,后面t个数为降序排序,现要求出数组的最大值。
public static int findMaxNum(int[] arr) {
if (arr == null || arr.length == 0) {
return Integer.MIN_VALUE;
}
int start = 0;
int end = arr.length - 1;
while(end - start > 1) {
int middle = (start + end) / 2;
if (arr[middle] <= arr[middle + 1]) {
start = middle;
}
else {
end = middle;
}
}
return Math.max(arr[start], arr[end]);
}