代码随想录算法训练营第三十一天|● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

文章讲述了在LeetCode中解决376摆动序列问题的方法,涉及单调序列处理和贪心策略,同时提到如何避免在最大子序和问题中误判平坡。作者尚未完成这两个题目的解答。
摘要由CSDN通过智能技术生成

376. 摆动序列  


随想录文字讲解:代码随想录 (programmercarl.com)

随想录视频讲解:贪心算法,寻找摆动有细节!| LeetCode:376.摆动序列_哔哩哔哩_bilibili

状态:没做出来


自己想的不知道处理局部的思路在哪。

对于局部的处理在于对单调序列的处理,如果一个元素的前元素差和后元素差满足分别大于和小于0就满足摆动条件。否则就继续循环。

对平坡的处理:对平坡最后一个节点进行判断,之前的平坡节点都默认删掉。所以判断符合的条件为

if((prediff>=0&&curdiff<0)||(prediff<=0&&curdiff>0))

 对第一个节点的处理可以不用特殊化,视为其前面有一个相同节点,即初始化前元素差为0时第一个节点自动符合条件。

但是这种判断条件会使插在单调坡中的平坡被误判成功,所以只有在判断成功时才有把后差和赋值给前差和的操作,因为单调操作时前差和一直都满足同一个条件,不需要再赋值。



53. 最大子序和  


随想录文字讲解:代码随想录 (programmercarl.com)

随想录视频讲解:

状态:没做出来


贪心的做法在于当子序和为负数后直接抛弃,从下一个新数开始算,同时别忘了对最大值的更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值