
分析
由于nums里没有重复元素,所以一定存在峰值。
可以假设:L表示[:L)内的元素均在峰值左侧,即nums[L-1]一定小于nums[L],
R表示(R:]内的元素均在峰值右侧,即nums[R+1]>nums[R+2]
因为nums[n]=-inf,所以 nums[n-1] > nums[n],即R0=nums[n-2]
代码
def solution(nums):
length = len(nums)
L = 0 #
R = length-2
while L <= R:
mid = (L+R) // 2
if nums[mid] < nums[mid+1]:
L = mid + 1
else:
R = mid - 1
return R + 1
本文介绍了一种使用二分查找算法在无重复元素列表`nums`中找到峰值位置的方法。通过不断缩小搜索范围,确定峰值左右两侧的边界,最后返回峰值索引。
165

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



