二分查找法
public int findPeakElement (int[] nums) {
// write code here
//数组长度为0,峰值没有
if (nums.length == 0) return -1;
//只有一个元素时,峰值就是他自己
if (nums.length == 1) return 0;
//定义左指针和右指针
int left = 0;
int right = nums.length - 1;
//初始化中间值
int mid = 0;
while (left < right) {
//mid为中间值
mid = (left + right) / 2;
//mid大于mid+1,说明右边更大,向左边收缩
if (nums[mid] > nums[mid + 1]) {
right = mid;
}
//否则就是最大值在mid的右边,最起码,mid+1是比mid大的
else
left = mid + 1;
}
return right;
}