[LeetCode] Candy
2014-07-14 15:51
232 查看
int candy(vector<int> &ratings) { int n = ratings.size(); int* candy = new int ; for(int i = 0; i < n; i++) { candy[i] = 1; } for(int i = 1; i < n; i++) { if(ratings[i] > ratings[i-1] && candy[i] <= candy[i-1]) { candy[i] = candy[i-1] + 1; } } for(int i = n-2; i >= 0; i--) { if(ratings[i] > ratings[i+1] && candy[i] <= candy[i+1]) { candy[i] = candy[i+1] + 1; } } int candies = 0; for(int i = 0; i < n; i++) { candies += candy[i]; } return candies; }
先从前往后遍历,遇到ratings比前一个人高而得到candy少的,多给他1个candy
再从后往前遍历,遇到ratings比后一个人高而得到candy少的,多给他1个candy
相关文章推荐
- [LeetCode][JavaScript]Candy
- [LeetCode]135 Candy
- leetcode -- Candy -- 重点
- LeetCode-Candy
- [leetcode]Candy
- [LeetCode] Candy
- LeetCode OJ Candy
- leetCode解题报告之Candy(简单回溯)
- leetcode candy
- LeetCode: Candy
- LeetCode: Candy
- 【LeetCode】Candy
- leetcode Candy
- leetcode 138: Candy (incompleted)
- [LeetCode] Candy (分糖果),时间复杂度O(n),空间复杂度为O(1),且只需遍历一次的实现
- (LeetCode 135) Candy
- [LeetCode]Candy, 解题报告
- leetcode[135] Candy
- [LeetCode] Candy
- Leetcode:Candy