leetcode 135. 分发糖果
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。
你需要按照以下要求,帮助老师给这些孩子分发糖果:
每个孩子至少分配到 1 个糖果。
相邻的孩子中,评分高的孩子必须获得更多的糖果。
那么这样下来,老师至少需要准备多少颗糖果呢?
示例 1:
输入: [1,0,2]
输出: 5
解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。
代码
class Solution {public int candy(int[] ratings) {int n=ratings.length;int[] cnt=new int[n];Arrays.fill(cnt,1);//所有人都发一颗boolean change=true;while (change)//直到每个孩子的糖果数量不再需要调整{change=false;for(int i=0;i<n;i++){if(i-1>=0&&ratings[i]>ratings[i-1]&&cnt[i]<=cnt[i-1])//检查左边孩子的分数和糖数是否符合要求,调整当前孩子的糖果数量,使得满足要求{change=true;cnt[i]=cnt[i-1]+1;}if(i+1<n&&ratings[i]>ratings[i+1]&&cnt[i]<=cnt[i+1])//检查右边孩子的分数和糖数是否符合要求,调整当前孩子的糖果数量,使得满足要求{change=true;cnt[i]=cnt[i+1]+1;}}}int res=0;for(int i=0;i<n;i++)res+=cnt[i];return res;}
}
leetcode 135. 分发糖果相关推荐
- LeetCode 135. 分发糖果(DP)
1. 题目 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻的 ...
- LeetCode 135 分发糖果
题目描述 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先 给他们评分.你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果. 相邻的孩子 ...
- LeetCode 135. 分发糖果(贪心算法)
题目描述 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻的孩 ...
- 170. Leetcode 135. 分发糖果 (贪心算法-两个维度权衡题目)
这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右 边,如果两边一起考虑一定会顾此失彼. 先确定右边评分大于左边的情况(也就是从前向后遍历) 此时局部最优:只要右边评分 ...
- leetcode 135分发糖果
这是一道hard题,不好想,但最后还是想出来了,私以为还是根据一些思想方法自己想出来做法印象比较深刻,其次看人家的做法思想自己写代码,其次看代码理解默写,其次直接抄代码: 首先,给每个孩子都发一个糖果 ...
- 2022-4-10 Leetcode 135.分发糖果
官方题解 class Solution {public:int candy(vector<int>& ratings) {int n = ratings.size();vector ...
- 通俗易懂:贪心算法(一):分配问题 (力扣455分发饼干 和135分发糖果)
看完本文,可以顺便解决leetcode以下两个题目: 455.分发饼干(简单) 135.分发糖果(困难) 一.通俗易懂的 贪心算法 |思想 贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的, ...
- LeetCode 0135. 分发糖果
[LetMeFly]135.分发糖果 力扣题目链接:https://leetcode.cn/problems/candy/ n 个孩子站成一排.给你一个整数数组 ratings 表示每个孩子的评分. ...
- 贪心 135. 分发糖果
135. 分发糖果 难度困难1086 n 个孩子站成一排.给你一个整数数组 ratings 表示每个孩子的评分. 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻两个孩 ...
最新文章
- kali linux解密栅栏密码,最详细bugku加密小白解法---持续更新!
- 完美解决Python与anaconda之间的冲突问题,你值得拥有
- 渲染完毕再渲染数据_三星Galaxy S21渲染图再曝:多种配色、新设计
- mybatis------通过mapper接口加载映射文件(六)
- 回归即登顶社交应用排行榜,多牛传媒开启人人“第二春”
- 关于结合测试时,数据准备的一些注意点 (之开始篇:如何能更快,更好的准备测试数据)。
- Keras实现text classification文本二分类
- 正射影像、倾斜摄影测量相关软件汇总
- 维宏控制卡win7 驱动_雕刻机专用维宏5.55运动驱动控制卡
- 【历史上的今天】5 月 15 日:Mozilla 发布 Rust;起点中文网成立;Windows 启动音乐设计者出生
- android手机平板如何使用usb有线网卡
- c++ Lake Counting
- 网络中国象棋对战中象棋的规则以及棋盘、棋子的Java源码
- 如何科学化、系统化的构建行业舆情模型(关键词方案)
- 分析QQ微信使用的是UDP还是TCP协议
- lftp的使用以及常见的指令
- 尚硅谷--尚品汇项目笔记
- PowerBuilder 开发的游戏(扫雷)
- Kali 使用nmap命令进行局域网扫描
- 详解红黑树之左旋右旋
热门文章
- sys/queue.h分析(图片复制不过来,查看原文)
- Java高级工程师面试实战,mysqlsettimeout
- matlab确定位置,Hurlin 的PSTR模型包,怎样确定位置参数个数
- 在layui中使用 jquery 触发select 的 change事件无效
- ios高级开发之多线程(一)
- 为mysql数据库建立索引
- 在UITouch事件中画圆圈-iOS8 Swift基础教程
- fastq-dump 报错 解决方案
- [转]带花树,Edmonds's matching algorithm,一般图最大匹配
- 常见算法及问题场景——图