class Solution {
public:
int candy(vector<int> &ratings) {
// Note: The Solution object is instantiated only once and is reused by each test case.
int candy[ratings.size()];
int p=1;
int res=0;
for (int i=0; i<ratings.size(); i++) {
if (i>0 && ratings[i]>ratings[i-1]) {
candy[i]=candy[i-1]+1;
}else{
candy[i]=1;
}
}
for (int i=ratings.size()-2; i>=0; i--) {
if (ratings[i]>ratings[i+1]) {
p++;
if (p>candy[i]) {
candy[i]=candy[i+1]+1;
}
}else{
p=1;
}
}
for (int i=0; i<ratings.size(); i++) {
res+=candy[i];
}
return res;
}
};
Candy
最新推荐文章于 2024-09-18 07:45:00 发布
本文介绍了一个解决糖果分配问题的算法,确保评分较高的孩子获得更多的糖果,同时相邻的孩子如果评分较高则必须获得更多糖果。通过双向遍历数组的方式,既考虑了每个孩子的评分又避免了不必要的浪费。
432

被折叠的 条评论
为什么被折叠?



