在Python中查找峰值元素
假设我们必须在数组中找到峰值元素。峰值元素是大于其相邻元素的元素。假设我们有一个输入数组nums,其中nums [i]≠nums [i + 1],搜索一个峰值元素并返回其索引。该数组可以容纳多个峰值元素,在这种情况下,将索引返回到任何一个峰值元素。我们可以想象nums [-1] = nums [n] =-∞。因此,如果数组类似于[1,2,1,3,5,6,4],则峰元素应为1或5。
为了解决这个问题,我们将遵循以下步骤-
低:= 0和高:=数组的最后一个索引,n:=数组的大小,ans:=无穷大
而低<=高
中:=低+(高-低)/ 2
如果mid – 1> = 0并且nums [mid – 1] <= nums [mid],则低:=中,否则高:=中-1
返回低
让我们看下面的实现以更好地理解-
示例
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中查找峰值元素 的全部内容, 来源链接: utcz.com/z/345465.html