162. 寻找峰值
class Solution {
public int findPeakElement(int[] nums) {
// // BP method
// int len=nums.length;
// if(len==0)return 0;
// if(len==1)return 0;
// if(len==2)return (nums[1]>nums[0])?1:0;
// int index=0;
// for(int i=1;i<nums.length;i++){
// if(nums[i]>nums[i-1]){index=i;}
// else break;
// // break;
// }
// return index;
// optimization method
int len=nums.length;
if(len==0)return -1;
if(len==1)return 0;
int l = 0, r = nums.length - 1;
while(l < r){
int mid = (l+r) / 2;
if(nums[mid] < nums[mid+1]){
l = mid + 1; // 爬坡
}else{
r = mid; // 下坡
}
}
return l;
}
}