题解 | #寻找峰值#
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型 # class Solution: def findPeakElement(self , nums: List[int]) -> int: # write code here li = set() # 理论至少有一个 if max(nums) == min(nums): li.add(0) else: for i in range(1, len(nums) - 1): if nums[i] > nums[i - 1] and nums[i] > nums[i + 1]: li.add(i) if max(nums) == nums[-1]: li.add(len(nums) - 1) if max(nums) == nums[0]: li.add(0) li = sorted(list(li)) # 因集合有无序性,避免答案不唯一通不过 return li[0] ########################################################################## # """ 查找列表内所有峰值 """ def findPeakElement(nums: list[int]): li = set() if max(nums) == min(nums): li.add(0) else: for i in range(1, len(nums) - 1): if nums[i] > nums[i - 1] and nums[i] > nums[i + 1]: li.add(i) if max(nums) == nums[-1]: li.add(len(nums) - 1) if max(nums) == nums[0]: li.add(0) return li