你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目。 示例1: 输入:ratings = [1,0,2] 输出:5 解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。 示例2: 输入:rati
如果ratings[i] > ratings[i + 1],此时candyVec[i](第i个小孩的糖果数量)就有两个选择了,一个是candyVec[i + 1] + 1(从右边这个加1得到的糖果数量),一个是candyVec[i](之前比较右孩子大于左孩子得到的糖果数量)。 那么又要贪心了,局部最优:取candyVec[i + 1] + 1 和 candyVec[i] 最大的糖果...
老师想要给孩子们分发糖果,每个孩子都有一个评分,这些评分预先根据他们的表现确定。孩子们站成了一条直线,老师需要确保每个孩子至少能得到1个糖果,同时,评分更高的孩子应该比他两侧的邻位孩子获得更多的糖果。这些规则为糖果的分发提供了基本的指导方针,旨在实现一个公平的分配方案。► 例子分析 举个例子,如果...
然后从最需要的开始分配糖果。依此类推。通过这种方式,糖果能够更合理地分配到每个孩子手中。二分法的优点在于,它能够减少分配过程中的无效操作,从而提高效率。 在糖果分发得过程中另一个不可忽视的问题就是公平性。如果不加约束地进行糖果分发,很容易导致孩子们之间的争执以及不满。避免这种情况,可以加入约束条件—...
请你给每个孩子分发糖果,计算并返回需要准备的最少糖果数目。 示例1 : 输入:ratings = [1,0,2] 输出:5 解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。 示例2 : 输入:ratings = [1,2,2] 输出:4 解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。
请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。 示例1: 输入:ratings = [1,0,2] 输出:5 解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。 示例2: 输入:ratings = [1,2,2] 输出:4 解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。
力扣官方题解 ・ 2020.12.23 分发糖果 官方 方法一:两次遍历 思路及解法 我们可以将「相邻的孩子中,评分高的孩子必须获得更多的糖果」这句话拆分为两个规则,分别处理。 左规则:当 [latex] 时,[latex] 号学生的糖果数量将比 [latex] 号孩子的糖果数量多。 右规则:当 [latex] 时,[latex] 号学生的糖果...
设小朋友人数为x,糖果总数y:1. 每人6粒时:所需糖果:6x实际不足:y = 6x - 172. 每人5粒时:已分数量:5x剩余验证:y = 5x + 3联立方程:6x -17 =5x +3解得:x=20代入得:y=5*20+3=103验证条件:- 6×20=120(需求)→103+17=120(缺量符合)...
示例 1:输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发2、1、2颗糖果。示例 2:输入:[1,2,2]输出:4解释:你可以分别给这三个孩子分发1、2、1颗糖果。第三个孩子只得到1颗糖果,这已满足上述两个条件。左右两次遍历这题有3个条件1,每个孩子至少有一个糖果2,相...
请你给每个孩子分发糖果,计算并返回需要准备的最少糖果数目。 示例1: 输入:ratings = [1,0,2] 输出:5 解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。 示例2: 输入:ratings = [1,2,2] 输出:4 解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。