LeetCode:Candy
2015-05-19 15:30
253 查看
题目描述:
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?
思路分析:扫描两遍数组。第一遍从左到右,保证相邻的两个元素右边的值比左边的值大(如果右边的权重大于左边的)。第二部扫描从右到做,保证相邻的两个元素左边的值比右边的值大(如果左边的权重大于右边的)。
代码:
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> number(size,1); for(int i = 1;i < size;i++) { if(ratings[i] > ratings[i-1]) number[i] = number[i-1] + 1; } for(int i = size-1;i > 0;i--) { if(ratings[i-1] > ratings[i]) number[i-1] = number[i] + 1 > number[i-1] ? number[i] + 1 : number[i-1]; } int sum = 0; for(int i = 0;i < size;i++) sum = sum + number[i]; return sum; } };
相关文章推荐
- [leetcode-135]Candy(java)
- [LeetCode]Candy
- 【LeetCode】Candy
- LeetCode:Candy
- LeetCode2.1.22 (Candy)
- [leetcode]Candy @ Python
- leetcode 138: Candy (incompleted)
- Leetcode Candy
- LeetCode -- Candy
- [LeetCode]题解(python):135-Candy
- [LeetCode]Candy, 解题报告
- 【leetcode】Candy
- LeetCode: Candy
- 6 Candy_Leetcode
- [LeetCode]Candy
- [LeetCode] Candy 分糖果问题
- [Leetcode][python]Candy
- leetcode135~Candy
- Leetcode225: Candy
- LeetCode-Candy