题解 | #寻找峰值#
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型 # class Solution: def findPeakElement(self , nums: List[int]) -> int: # write code here # 如果只有2个值,直接返回最大值下标 length=len(nums) if length<3: return nums.index(max(nums)) else: count=0 # 遍历,按照峰值逻辑查找 for i in range(1,length-1): if nums[i]>nums[i-1] and nums[i]>nums[i+1]: count=count+1 # 返回第一个峰值的下标,所以要比较找到的峰值和首元素 return nums.index(max(nums[0],nums[i])) # 如果没找到峰值,且最后一个元素是最大值,返回最后一个元素 if count==0 and max(nums)==nums[length-1]: return length-1 # 找不到峰值 return 0