135. 分发糖果
- 初始化一个candy数组,代表每个孩子的糖果数量,初始化为1
- 从左向右遍历,比较右孩子和左孩子的评分大小,右孩子比左孩子大,糖果数就变为左孩子+1
- 从右向左遍历,比较左孩子和右孩子的藕粉大小,左孩子比右孩子大,糖果数就变为左孩子+1和当前糖果数的最大值
class Solution {
public:
int candy(vector<int>& ratings) {
vector<int> candy(ratings.size(),1);
for(int i =1;i<ratings.size();i++)
{
if(ratings[i]>ratings[i-1])
candy[i]= candy[i-1]+1;
}
for(int i=ratings.size()-2;i>=0;i--)
{
if(ratings[i]>ratings[i+1])
candy[i] = max(candy[i+1]+1,candy[i]);
}
int sum =0;
for(int i=0;i<candy.size();i++)
{
sum += candy[i];
}
return sum;
}
};