
求解代码
因为本题假设nums[-1]=nums[n]=-∞,所以,只要数组中存在一个元素比相邻的元素大,那么沿着它就一定可以找到一个峰值。
使用二分查找,比较mid和mid+1位置的值,如果mid位置的值更大,则左侧存在峰值;
如果mid+1位置的值更大,则右侧存在峰值。
|
|
注意⚠️:
这里说明一下为什么无序数组也能使用二分查找,主要是这道题通过比较nums[mid]和nums[mid+1],可以确定峰值的位置区间,这满足二分的核心条件,所以无序也能用二分。

因为本题假设nums[-1]=nums[n]=-∞,所以,只要数组中存在一个元素比相邻的元素大,那么沿着它就一定可以找到一个峰值。
使用二分查找,比较mid和mid+1位置的值,如果mid位置的值更大,则左侧存在峰值;
如果mid+1位置的值更大,则右侧存在峰值。
|
|
注意⚠️:
这里说明一下为什么无序数组也能使用二分查找,主要是这道题通过比较nums[mid]和nums[mid+1],可以确定峰值的位置区间,这满足二分的核心条件,所以无序也能用二分。