您的位置:首页 > 其它

leetcode题目:Candy

2014-05-07 15:17 316 查看
题目:

There are N children standing in a line. Each child is assigned a rating value.

You are giving candies to these children subjected to the following requirements:
Each child must have at least one candy.
Children with a higher rating get more candies than their neighbors.

What is the minimum candies you must give?
代码:
class Solution {
public:
int candy(vector<int> &ratings) {
int size = ratings.size();
vector<int>m_vec(size);
int inivalue =1;
for(int i = 1;i<size;i++)
{
if(ratings[i]>ratings[i-1])
{
m_vec[i] = inivalue++;
}
else
{
inivalue = 1;
}
}
inivalue = 1;
for(int j = size-2;j>=0;j--)
{
if(ratings[j]>ratings[j+1])
{
m_vec[j] = max(inivalue++,m_vec[j]);
}
else
{
inivalue = 1;
}
}
return accumulate(m_vec.begin(),m_vec.end(),size);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode vector