LeetCode OJ:Candy(糖果问题)
There are N children standing in a line. Each child is assigned a rating value. You are giving candies to these children subjected to the following requirements: Each child must have at least one candy. Children with a higher rating get more candies than their neighbors. What is the minimum candies you must give? 一个抠门的人要给一群孩子发糖果,在保证在相邻的孩子之间的rating较高者应该比rating低的获得更多的糖果的情况下,怎样发最少的糖果。 左右各遍历一次即可,代码如下所示: 1 class Solution { 2 public: 3 int candy(vector<int>& ratings) { 4 int sz = ratings.size(); 5 vector<int>candy(sz, 0); 6 if(sz == 0) return 0; 7 if(sz == 1) return 1; 8 candy[0] = 1; 9 for(int i =