leetcode: Candy
2014-06-30 20:57
295 查看
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?
先从左到右遍历,如果i+1个rating大于i,糖果加1;再从右到左遍历,如果i个rating小于i-1个rating且i糖果大于等于i-1糖果,则i-1糖果等于i糖果加1
画图,思考,尝试
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?
先从左到右遍历,如果i+1个rating大于i,糖果加1;再从右到左遍历,如果i个rating小于i-1个rating且i糖果大于等于i-1糖果,则i-1糖果等于i糖果加1
画图,思考,尝试
class Solution { public: int candy(vector<int> &ratings) { if( ratings.size() <= 1) return ratings.size(); vector< int> candy( ratings.size(), 1); for( int i = 1; i < ratings.size(); ++i){ if( ratings[i] > ratings[i-1]){ candy[i] = candy[i-1] + 1; } } for( int i = ratings.size() - 1; i >= 1; --i){ if( ratings[i] < ratings[i-1] && candy[i] >= candy[i-1]) candy[i-1] = candy[i] + 1; } int res = 0; for( int i = 0; i < candy.size(); ++i) res += candy[i]; return res; } };
相关文章推荐
- LeetCode | Candy(分糖果问题)
- LeetCode: Candy
- leetcode Candy
- LeetCode题解:Candy
- Leetcode 135 Candy 解题报告
- Leetcode 之Candy 分糖果问题。
- LeetCode——Candy
- [LeetCode] Candy
- Candy - Leetcode
- leetCode_Candy
- [LeetCode][Java] Candy
- 【LeetCode】Candy
- Candy - LeetCode
- [Leetcode][JAVA] Candy
- leetcode:Candy 【Java】
- Leetcode. 135 Candy(Hard)
- [LeetCode]Candy——分糖果问题
- leetcode 135: Candy
- [leetcode] 135.Candy
- *candy——leetcode