解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。 示例2 输入: [1,2,2] 输出: 4 解释: 你可以分别给这三个孩子分发 1、2、1 颗糖果。 第三个孩子只得到 1 颗糖果,这已满足上述两个条件 解题思路 两个数组left和right分别记录从左向右规则和从右向左规则时,每个孩子应该分的糖果数。 题目要求即为同时满足两个方向的规则,即两个数组
遍历完之后还要反着再看一遍后邻居,如果比后邻居评分高,且糖数还不如后邻居多,那么就要设置成后邻居糖数+1。本质上就是先遍历一次,分别保证评分满足和左边的邻居比,之后再遍历一次,保证评分满足和右边的邻居比。最后把每个人手里糖数加起来就是结果。 Java classSolution {publicintcandy(int[] ratings) {intle...