class Solution {
public:
int candy(vector<int>& ratings) {
int n=ratings.size();
if (!n) return 0;
vector<int> candyNum(n,1);
for (int i=1;i<n;i++){
if (ratings[i]>ratings[i-1]) candyNum[i]=candyNum[i-1]+1;
}
int sum=0;
for (int i=n-2;i>=0;i--){
if (ratings[i]>ratings[i+1]) candyNum[i]=max(candyNum[i],candyNum[i+1]+1); // 取最大值
sum+=candyNum[i];
}
return sum+candyNum[n-1];
}
};