博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 135:candy 题解 Python
阅读量:4119 次
发布时间:2019-05-25

本文共 1037 字,大约阅读时间需要 3 分钟。

题意:每个小朋友有一个rating值, 为每个小朋友分配糖果,如果某个小朋友的rating比相邻的某个人高,则他的糖果也要比他多。问最少需要给出去多少糖果

题解:这是一个贪心,先正着扫一边,如果序列递增,则糖果数依次加一,如果遇到变小的则设为1。 得到最少的糖果序列 。

           然后再反向贪心一遍。 最后把两个序列求max  然后相加即可

>.< 很久没做过算法一直在做水题。 就当学python了吧。  

class Solution:    # @param {integer[]} ratings    # @return {integer}    def candy(self, ratings):        num = [1]         cnt = 1         for i in range(1,len(ratings)) :            if ratings[i]>ratings[i-1] :                cnt += 1            else :                cnt = 1             num.append(cnt)       # ans = num.pop()        ans = num[len(ratings)-1]        cnt = 1         for i in range(len(ratings)-1,0,-1) :            if ratings[i-1]>ratings[i] :                cnt += 1            else :                cnt = 1             ans += max ( num[i-1], cnt )        return ans if __name__ == '__main__' :    a = Solution ()    ratings = [1,2,3,4,3,2,1]    ans2 = a.candy(ratings)    print ans2~                                                                                                           ~
虽然实习没什么时间做题。但是还是要每天坚持才行!

转载地址:http://linpi.baihongyu.com/

你可能感兴趣的文章
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
听说玩这些游戏能提升编程能力?
查看>>
如果你还不了解 RTC,那我强烈建议你看看这个!
查看>>
沙雕程序员在无聊的时候,都搞出了哪些好玩的小玩意...
查看>>
Mysql复制表以及复制数据库
查看>>
firewalld的基本使用
查看>>
Linux下SVN客户端使用教程
查看>>
Linux分区方案
查看>>
nc 命令详解
查看>>
如何使用 systemd 中的定时器
查看>>
git命令速查表
查看>>
linux进程监控和自动重启的简单实现
查看>>
OpenFeign学习(三):OpenFeign配置生成代理对象
查看>>
OpenFeign学习(四):OpenFeign的方法同步请求执行
查看>>
OpenFeign学习(五):OpenFeign请求结果处理及重试控制
查看>>
OpenFeign学习(六):OpenFign进行表单提交参数或传输文件
查看>>
OpenFeign学习(七):Spring Cloud OpenFeign的使用
查看>>
Ribbon 学习(二):Spring Cloud Ribbon 加载配置原理
查看>>
Ribbon 学习(三):RestTemplate 请求负载流程解析
查看>>
深入理解HashMap
查看>>