题解 | #分糖果问题#

分糖果问题

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# pick candy
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
    def candy(self , arr: List[int]) -> int:
        # write code here
        n = len(arr)
        res = [1] * n
		# 从左往右找,右边比左边大,递增加1,如果右边小于等于左边,默认是1
        for i in range(1,n):
            if arr[i]> arr[i-1]:
                res[i] = res[i-1] + 1
		# 从右往左找,主要处理上次默认为1的部分,如果左边比右边大但是糖果数小于右边,把左边的糖果数从1改到右边糖果数 +1
        for j in range(n-2, -1, -1):
            if arr[j] > arr[j+1] and res[j] <= res[j+1]:
                res[j] = res[j+1] + 1
        return sum(res)

全部评论

相关推荐

09-19 19:43
已编辑
广东工业大学 golang
zizi哦:很牛了,稳大厂给几点建议:一、想被稳的问题,关键点,可以加深一点,一眼看过去全是文字,没事干容易抓不住重点;二、第一个开源项目很多人 star,这是一个证明你牛逼的证据,建议放在项目背景,开头就是这句话,背景到结果,并且重点标注;三、个人技能可以放后,没什么把握的可以不写上去,比如你列了这么多微服务中间件,你确定自己真的理解底层吗?如果不熟悉,可以表述为熟悉微服务体系开发,如 xxx 中间件;四、项目很多描述在讲述架构,有没有自己觉得亮点的设计,体现不出你解决问题的过程和思考。
如何写一份好简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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