LeetCode题解(0162):寻找峰值(Python)
发布日期:2021-06-29 20:16:03 浏览次数:2 分类:技术文章

本文共 672 字,大约阅读时间需要 2 分钟。

题目:(中等)

标签:二分查找、数组

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( l o g N ) O(logN) O(logN) O ( 1 ) O(1) O(1) 36ms (82.52%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:    def findPeakElement(self, nums: List[int]) -> int:        # 处理数组长度为1的情况        if len(nums) == 1:            return 0        # 处理两侧边缘就是峰值的情况        if nums[0] > nums[1]:            return 0        if nums[-1] > nums[-2]:            return len(nums) - 1        # 二分查找        left, right = 0, len(nums) - 1        while left < right:            mid = (left + right) // 2            if nums[mid] > nums[mid + 1]:                right = mid            else:                left = mid + 1        return left

转载地址:https://dataartist.blog.csdn.net/article/details/112608071 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode题解(0179):最大数(Python)
下一篇:LeetCode题解(0152):乘积最大子数组(Python)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月22日 07时28分55秒