输入: [1,0,2] 输出: 5 解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。 代码 func candy(ratings []int) int { size := len(ratings) if size < 2 { return size } var can = make([]int, size) for i := 1; i < size; i++ { if ratings[i] > ratings[i-1] { can[i]...
1public int candy(int[] ratings) { 2 int length = ratings.length; 3 int[] count = new int[length]; 4 //默认给每个孩子一个糖果 5 Arrays.fill(count, 1); 6 //先从左往右遍历 7 for (int i = 1; i < length; i++) { 8 if (ratings[i] > ratings[i - 1]) 9 count[i] = ...
解释: 你可以分别给这三个孩子分发 1、2、1 颗糖果。 第三个孩子只得到 1 颗糖果,这已满足上述两个条件。 解答: 注意:第二次遍历时,要判断下当前元素的值是否满足,不然会导致第一次遍历时置上的值被重置,会导致最终结果错误。 #include <numeric> int candy(vector<int>& ratings) { //记录每个人的糖...