Leetcode-162-寻找峰值

2023-12-27 17:35:03

题干

分析

由于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

文章来源:https://blog.csdn.net/Coding_Ann/article/details/135243266
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。