您的位置:首页 > 其它

[leetcode] Candy

2014-08-15 23:54 281 查看
Candy

使用递归

class Solution {
public:
int candy(vector<int> &ratings) {
vector<int> fun(ratings.size());
int sum=0;
for(int i=0;i<ratings.size();++i){
sum+=solve(ratings,fun,i);
}
return sum;
}
int solve(const vector<int> &ratings,vector<int> &fun,int i){
if(fun[i]==0){
fun[i]=1;//至少一个
if(i>0&&ratings[i]>ratings[i-1]){
fun[i]=max(fun[i],solve(ratings,fun,i-1)+1);//至少多一个
}
if(i<ratings.size()-1&&ratings[i]>ratings[i+1]){
fun[i]=max(fun[i],solve(ratings,fun,i+1)+1);
}
}
return fun[i];
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: