Leetcode练习(Python):第162题:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组

Posted 桌子哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode练习(Python):第162题:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组相关的知识,希望对你有一定的参考价值。

题目:

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

给定一个输入数组 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

以上是关于Leetcode练习(Python):第162题:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode第162题—寻找峰值—Python实现

Leetcode练习(Python):链表类:第206题:反转链表:反转一个单链表。

Leetcode练习(Python):数学类:第50题:Pow(x, n):实现 pow(x, n) ,即计算 x 的 n 次幂函数。

Leetcode练习(Python):数学类:第50题:Pow(x, n):实现 pow(x, n) ,即计算 x 的 n 次幂函数。

Leetcode练习(Python):链表类:第92题:反转链表 II:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

Leetcode练习(Python):栈类:第145题:二叉树的后序遍历:给定一个二叉树,返回它的 后序 遍历。