[Leetcode][python]Candy
2017-11-18 05:06
447 查看
题目大意
一直线上站了N个孩子,每个孩子都有一个属于自己的数字,现在按照如下规则给孩子分发糖果:每个孩子至少有一个糖果;相邻的孩子中数字比较大的那个拿的糖果也比较多。求最少要发掉多少个糖果。解题思路
贪心法。想象下,先从前面开始升序遍历,所有升序的就从1开始给,再从后面开始升序遍历,所有升序的就从1开始给,遇到所有需要改变值的节点,对比想要改成的值与之前的值,取最大的保证其对两边都是最大。
代码
class Solution(object): def candy(self, ratings): """ :type ratings: List[int] :rtype: int """ n = len(ratings) result = [1 for __ in range(n)] for i in range(1, n): if ratings[i-1] < ratings[i]: result[i] = result[i-1] + 1 for j in range(n-2, -1, -1): if ratings[j] > ratings[j+1]: result[j] = max(result[j], result[j+1] + 1) return sum(result)
总结
相关文章推荐
- [LeetCode]题解(python):135-Candy
- [leetcode]Candy @ Python
- [leetcode]Candy @ Python
- 【LeetCode with Python】 Candy
- 【LeetCode 135】Candy (Python)
- 【leetcode】Candy(python)
- LeetCode 135:candy 题解 Python
- 【leetcode】Candy(python)
- leetcode206题 题解 翻译 C语言版 Python版
- 【LeetCode】173. Binary Search Tree Iterator 解题报告(Python)
- [LeetCode]题解(python):036-Valid Sudoku
- python写算法题:leetcode: 6. ZigZag Conversion
- [leetcode: Python]172. Factorial Trailing Zeroes
- LeetCode 1.Two Sum (Python)
- [leetcode-135]Candy(java)
- LeetCode OJ Candy
- [LeetCode]11. Container With Most Water解法及python
- [LeetCode]题解(python):098- Validate Binary Search Tree
- LeetCode--Majority Element(出现次数最多的元素)Python
- [LeetCode]题解(python):101-Symmetric Tree