算法设计与分析 第五周
分发糖果
1.题目描述
2.选题原因
国庆时间提前预习了
贪心算法
一章,因此特地选择了贪心算法
的题目。这是很经典的一道题目。
3.题目分析及算法
3.1分析
按照我们平常的思路,就是
遍历
,在遍历的过程中不断比较当前点与左边、右边的点比较,如果大过周围的点,那么就增加自己的值。按照这样的思路下去,不免会出现这样一个问题:当当前的点因为比右边的点大而增加了,但是本来是比左边的点要小的,那是否就意味着前面的点又小了?让我们用一个表格来简单的表示一下:表格的第一行表示序号,第二行表示当前分配的糖果。
假设初始化的序号组是1, 2, 1, 2
,正在经过的节点将会用红色
标注出来。
当然,初始化的时候所有的点都会有一个糖果~
rating | 1 | 3 |
2 | 1 |
---|---|---|---|---|
candy | 1 | 2 |
1 | 1 |