题解 | #寻找峰值#解释r = m和l = m+1
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int findPeakElement(vector<int>& nums) {
int l = 0;
int r = nums.size()-1;
while (l<r) {
int m = (l+r)/2;
if (nums[m]>nums[m+1]) r = m;//r可能是峰值
else l = m+1; //l是上坡,l一定不是峰值
}
return r;
// write code here
}
};
理解清楚为什么r = m和l = m+1