
class Solution {
public:
//二分法找峰值
int findPeakElement(vector<int>& nums) {
int sz = nums.size();
int l = 0, r = sz - 1;
while(l < r){
int mid = l + (r - l) / 2;
if(nums[mid] < nums[mid + 1]){
//mid确认不是峰值
l = mid + 1;
}
else{
//不能确认mid是不是峰值,所以不是mid-1
r = mid;
}
}
return l;
}
};
该代码实现了一个C++函数,通过二分查找算法在给定的整数向量中找到峰值元素,即大于其相邻元素的数。函数首先初始化左边界l为0,右边界r为数组大小减1,然后在循环中不断缩小搜索范围,直到找到峰值元素的位置。
835

被折叠的 条评论
为什么被折叠?



