
int findPeakElement(vector<int>& nums) {
if(nums.empty()) return -1;
int n = nums.size();
int left = 0,right = n-1,mid;
while(left<=right){
mid = left + (right-left)/2;
if((mid==0 || nums[mid] > nums[mid-1]) && (mid==n-1 || nums[mid] > nums[mid+1]))
return mid;
else if((mid==0 || nums[mid] > nums[mid-1]) && (mid==n-1 || nums[mid] < nums[mid+1]))
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
寻找峰值元素算法
本文介绍了一种寻找一维整型数组中的峰值元素的算法。峰值元素是指其值大于相邻元素的元素,在边界处只需比较一侧即可。通过使用二分查找的方法,该算法能够在O(log n)的时间复杂度内找到峰值元素的位置。
606

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



