class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int findPeakElement(vector<int>& nums) {
// write code here
//关键思想:下坡的时候可能找到波峰,但是可能找不到,一直向下走的
//上坡的时候一定能找到波峰,因为题目给出的是nums[-1] = nums[n] = -∞
int r = nums.size() - 1;
int l = 0;
while(l < r){
int m = (l + r) / 2;
//证明右边的路是下坡路,不一定有坡峰
if(nums[m] > nums[m+1]){
r = m;
}else{//这里是右边的路是上坡路
l = m + 1;
}
}
return r;
}
};