分别从左边比较,取得的孩子要分发的糖果数记录,然后再从右边比较,将要分发的糖果数记录。最后取大值,将糖果数加起来
class Solution {
public:
int candy(vector<int>& ratings) {
vector<int> candyVec(ratings.size(),1);
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);
}
}
int rest = 0;
for(int i = 0; i< candyVec.size();i++) rest += candyVec[i];
return rest;
}
};