力扣原题:https://leetcode.cn/problems/find-peak-element/
给定一个输入数组nums,其中nums[i] != nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums[-1]= nums[n]= -∞。
思路
(1)遍历递增序列,遇到第一个非递增的位置返回,时间复杂度为O(n)。(2)寻找最大值,时间复杂度依旧为O(n)。(3)二分查找变体,在二分查找时,取中间位置m,并与它相邻位置m+1进行比较,如果m大于m+1,说明峰值应该在左侧,否则应该在右侧,移动对应的左右边界。
THE END
暂无评论内容