题解 | #分糖果#

分糖果

http://www.nowcoder.com/practice/74a62e876ec341de8ab5c8662e866aef

#
# 
动态规划从左往右循环一次,保证比左边邻居大,从右往左保证比右边邻居大
# @param ratings int整型一维数组 
# @return int整型
#
class Solution:
    def candy(self , ratings ):
        # write code here
       if not ratings : return 0
       dp =[1] *len(ratings)
       for i in range(1, len(ratings)):
        if ratings[i] > ratings[i-1]:
            dp[i] = dp[i-1] +1
       for j in range(len(ratings)-2,-1,-1):
        if ratings[j] >ratings[j+1] and dp[j] <=dp[j+1]:
            dp[j] = dp[j+1] +1
       return sum(dp)


全部评论

相关推荐

杨柳哥:这不是普通人,那这个钱的是天才
点赞 评论 收藏
分享
10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
2 1 评论
分享
牛客网
牛客企业服务