题目链接:https://leetcode-cn.com/problems/candy/
题目描述:
题解:
class Solution {
public:
int candy(vector<int>& ratings) {
vector<int> candyVec(ratings.size(), 1);
int count = 0;
//从前向后遍历,查找右值比左值大
for(int i = 1; i < ratings.size(); i++)
{
if(ratings[i] > ratings[i - 1])
candyVec[i] = candyVec[i - 1] + 1;
}
//从后向前遍历,查找左值比右值大
for(int i = ratings.size() - 2; i >= 0; i--)
{
if(ratings[i] > ratings[i + 1])
candyVec[i] = max(candyVec[i], candyVec[i + 1] + 1);
}
for(int iter: candyVec)
count += iter;
//for (int i = 0; i < candyVec.size(); i++) count += candyVec[i];
return count;
}
};