zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):数组类:第162题:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。

    题目:

    峰值元素是指其值大于左右相邻值的元素。

    给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。

    数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。

    你可以假设 nums[-1] = nums[n] = -∞。

    说明:

    你的解法应该是 O(logN) 时间复杂度的。

    思路:

    二分法

    程序:

    class Solution:
        def findPeakElement(self, nums: List[int]) -> int:
            length = len(nums)
            head = 0
            tail = length -1
            while head < tail:
                middle = (head + tail) // 2
                if nums[middle] > nums[middle + 1]:
                    rail = middle
                else:
                    head = middle + 1
            return head
  • 相关阅读:
    Stack源码分析
    LinkedList源码分析 (JDK1.8)
    AbstractSequentialList源码分析
    Vector源码分析
    ArrayList简介
    获取类运行
    类加载器的作用
    什么时候会发生类初始化
    IIS无法加载字体文件(*.woff,*.svg)的解决办法
    PowerDesigner 显示name(中文) 和显示code(字段名) 设置
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12774166.html
Copyright © 2011-2022 走看看