题解 | 寻找峰值

寻找峰值

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))
            

全部评论

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
allin秋招的单身...:我投过这家 上来就发个设计图给我,让我做好发到他邮箱
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务