1 | 峰值元素是指其值大于左右相邻值的元素。 |
二分查找
因为数组中不存在相等的元素,因此只要找到第一个下降的元素,那么就找到了峰值
1 | public class Solution { |
二分查找
1 | /\ |
二分查找时
- 如果 $nums[mid]>nums[mid+1]$ 在递减区间,那么在 $mid$ 的左边一定有一个峰值(因为数组最左边和最右边的值都是负无穷)
- 如果 $nums[mid]<nums[mid+1]$ 在递增区间,那么在 $mid$ 的右边一定存在一个峰值(因为数组最左边和最右边的值都是负无穷)
最后的峰值一定由left遍历到
1 | class Solution { |
存在重复元素时
1 | class Solution { |