本文主要是介绍【leetcode】Candy(python),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目要求比其高的邻居要比本身的奖励多,那么最少也要多一个,所有我们可以找到所有的凹点,凹点如下三种情形。
找到所有的凹点后,我们就可以从凹点处开始向左右两个方向依次查找递增序列,其中每个高的都要比相邻的矮的多一个,比如1,2,5,4.我们找到凹点为1 和4,那么从1开始向左没有其他点,我们向右,依次得到2 比1高,2的糖果应该是1的基础上加1,为2, 5比2高,5的糖果是在2的基础上加1,为3。令一个凹点4, 向左,5比4高,5的糖果应该是在4的基础上加 1,为2,这时我们发现冲突了,从凹点1 开始,我们得到的5的糖果是3,但是从凹点 4 开始,我们得到的糖果数却为2 ,此时我们选择哪个呢?当然,如果要少的,当然是2,但是它却违反了题目中的限定条件,5如果为2 ,就不比2的糖果数多了,所以这时我们就应该选择最大的,这说明了什么呢?说明从左面开始向右到 5 得到的递增序列的长度大于从4开始向左到5得到的递增序列。也就是说,得到的糖果数的多少,取决于所构成的连续递增序列的长度。
class Solution:def candy
这篇关于【leetcode】Candy(python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!