在 Python 中查找峰值元素
pythonserver side programmingprogramming更新于 2025/11/22 20:28:17
假设我们必须在数组中找到峰值元素。峰值元素是大于其邻居的元素。假设我们有一个输入数组 nums,其中 nums[i] ≠ nums[i+1],搜索峰值元素并返回其索引。该数组可以容纳多个峰值元素,在这种情况下返回任何一个峰值元素的索引。我们可以想象 nums[-1] = nums[n] = -∞。因此,如果数组为 [1,2,1,3,5,6,4],峰值元素应为 1 或 5。
要解决这个问题,我们将遵循以下步骤 −
- low := 0 且 high := 数组的最后一个索引,n := 数组的大小,ans := 无穷大
- 当 low <= high
- mid := low + (high - low)/2
- 如果 mid – 1 >= 0 且 nums[mid – 1] <= nums[mid],则 low := mid,否则 high := mid - 1
- 返回 low
让我们看看下面的实现以便更好地理解 −
示例
class Solution(object): def findPeakElement(self, nums): low = 0 high = len(nums)-1 while low<high: mid = low + (high - low+1)//2 if (mid-1>=0 and nums[mid-1]<=nums[mid]): low = mid else: high = mid-1 return nums[low+1] ob1 = Solution() print(ob1.findPeakElement([15,35,85,96,5,6,8,12]))
输入
[15,35,85,96,5,6,8,12]
输出
5
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

