2023-12-5 贪心算法

1,分饼干

先对两个数组进行排序,sort,从小到大排序,从孩子后面开始遍历,先用大饼干尽量满足大胃口,count++;

2,摆动序列

删除一些节点,可以简单画一下,删除的是单调递增或者递减上的除了两端的点。

连续判断三个,如果中间减去前一个与后一个减去中间的正负性不一致的话,就需要记录下来。

需要考虑三种情况,第一个

上下坡中有平坡,【1,2,2,2,1】,就有pre<=0,cur>0的情况。

数组首位两端,假设刚开始左边还有一个0;

单调坡度有平的;只在摆动有变化的时候更新pre;细节很多。

3,最大子数组和

经过尝试,用暴力算法的话,超出时间限制。

贪心:当前面的和是负数的时候,就说明到目前为止的和对后面的数字来说都是负担,因此,应当从下一个开始重新计数,将sum重新置零。注意用sum对result赋值和判断是否<0的顺序,应当先赋值,这样可以避免都为负数的情况下,造成最终结果不对。

4,买卖股票的最佳时机ii

从局部大值算全局最大的值,如果后一天比前一天的数字大的话,就用sum加上这个差,通过三个示例可以得出这样的算法是正确的。

引用代码随想录的解释:

5,跳跃游戏

可以跳几步并不重要,在于可以跳到的覆盖范围。

贪心:每次取最大的跳跃范围,看看最终能否包括终点。注意在for循环比较的时候,不能直接写数组的长度,因为有可能从前面的到不了后面的位置,因此i<=count,count要随时更新到最远的距离,也就是如果i+nums[i]>count的话,将值赋给count。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值