题解 | #分糖果问题#

分糖果问题

https://www.nowcoder.com/practice/76039109dd0b47e994c08d8319faa352

寻找波峰问题,每个孩子的糖果数是其鞍点个数的最大值
建立两个数组一个left,一个right
左遍历获得每个点左边的鞍点数
右遍历寻找每个点右边鞍点数
取左右最大的一边,一加和就是结果
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# pick candy
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
    def candy(self , arr: List[int]) -> int:
        # write code here
        left=[1 for i in range(len(arr))]
        right=[1 for i in range(len(arr))]
        n=len(arr)
        ans=0
        for i in range(1,n):
            if arr[i]>arr[i-1]:
                left[i]=left[i-1]+1
        for j in range(n-2,-1,-1):
            if arr[j]>arr[j+1]:
                right[j]=right[j+1]+1
        for i in range(n):
            ans+=max(left[i],right[i])
        return ans
        
                
            
                
                
            

全部评论

相关推荐

06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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