题解 | 寻找峰值
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
import re # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型 # class Solution: def findPeakElement(self , nums: List[int]) -> int: # write code here # 最佳题解 # if(len(nums)==0): # return -1 # left = 0 # right = len(nums)-1 # while(left<right): # mid = (left+right)//2 # if(nums[mid]>nums[mid+1]):#中间的值大于其右侧的值,则右侧出现山峰概率不大 # right = mid # else :#中间值小于其右侧的值,一定有山峰 # left=mid+1 # return right #三个一组,中间高两端低为山峰,简单思路 for b in range(1,len(nums)-1): a=b-1 c=b+1 if len(nums)<3:#防止越界 break if nums[a]<nums[b] and nums[b]>nums[c]: return b #其他情况直接返回最大值的下标即可 return nums.index(max(nums))