zoukankan      html  css  js  c++  java
  • Leetcode 162. Find Peak Element

    https://leetcode.com/problems/find-peak-element/

    Medium

    A peak element is an element that is greater than its neighbors.

    Given an input array nums, where nums[i] ≠ nums[i+1], find a peak element and return its index.

    The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.

    You may imagine that nums[-1] = nums[n] = -∞.

    Example 1:

    Input: nums = [1,2,3,1]
    Output: 2
    Explanation: 3 is a peak element and your function should return the index number 2.

    Example 2:

    Input: nums = [1,2,1,3,5,6,4]
    Output: 1 or 5 
    Explanation: Your function can return either index number 1 where the peak element is 2, 
                 or index number 5 where the peak element is 6.
    

    Note:

    Your solution should be in logarithmic complexity.


     1 class Solution:
     2     def findPeakElement1(self, nums: List[int]) -> int:
     3         left, right = 0, len(nums) - 1
     4         
     5         while left < right:
     6             middle = int( (left + right) / 2)
     7             
     8             if nums[middle] > nums[middle + 1]:
     9                 right = middle
    10             else:
    11                 left = middle + 1
    12         
    13         return left        
    14 
    15     def findPeakElement(self, nums: List[int]) -> int:
    16         if not nums:
    17             return 0
    18         
    19         def helper(nums, left, right):
    20             if left == right:
    21                 return left
    22             
    23             middle = int( (left + right) / 2 )
    24             
    25             if nums[middle] > nums[middle + 1]:
    26                 return helper(nums, left, middle)
    27             else:
    28                 return helper(nums, middle + 1, right)
    29     
    30         return helper(nums, 0, len(nums) - 1)
    View Python Code
  • 相关阅读:
    软件设计师-成绩查询
    spring data jpa
    Maven 项目中使用 logback
    spring boot 整合 Camunda
    Spring 中 bean 的生命周期?
    如何合理的使用工具提高效率?
    Java 中的日志
    HashMap 原理?jdk1.7 与 1.8区别
    内存泄漏与溢出
    v-on 绑定自定义事件
  • 原文地址:https://www.cnblogs.com/pegasus923/p/11390913.html
Copyright © 2011-2022 走看看