狗皮膏药贴一贴
class Solution {
public:
int candy(vector<int>& ratings) {
if(ratings.empty())return 0;
else if(ratings.size()==1)return 1;
int sum=0;
int up_Cnt=0;
int down_Cnt=0;
int i=0;
while(i<ratings.size()-1){
up_Cnt=0;
down_Cnt=0;
if(sum>0)--sum;
while(i<ratings.size()-1&&ratings[i]<ratings[i+1]){
++i;
++up_Cnt;
sum+=up_Cnt;
}
while(i<ratings.size()-1&&ratings[i]>ratings[i+1]){
++i;
++down_Cnt;
sum+=down_Cnt;
}
sum+=(++up_Cnt>++down_Cnt)?up_Cnt:down_Cnt;
while(i<ratings.size()-1&&ratings[i]==ratings[i+1]){
++sum;
++i;
}
}
return sum;
}
};