区间贪心1

什么是贪心?

贪心算法(英语:greedy algorithm)也称贪婪算法。

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。

这么说是不是有点抽象啦,没关系,我们来看一下这个例子: 例如,你班要和其他班级进行拔河比赛,需要选出10个人参加,假设让你选,你应该怎么选出这10个人呢?

拔河主要靠力气哦。 指定每次选当前班级力气最大的那个人,最终就把班级力气最大的前10个人选出来啦,他们代表班级出战是最好的决策啦。

是不是有点了解贪心啦,不急,我们再来一个例子: 例如,有一堆钞票,你可以依次拿走十张,如果想达到最大的金额,你要怎么拿?

第一次,拿这堆钞票面值最大的;

第二次,拿剩余这堆钞票面值最大的;

第三次,继续拿剩余这堆钞票面值最大的;

...第十次,继续拿剩余这堆钞票面值最大的。 指定每次拿当前堆最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。

贪心的适用范围有句话说的好,万物皆可贪,这说明贪心可适用的范围比较广,广到没有一个模板能够准确表示贪心算法的。所以贪心问题一般没有固定的套路,灵活多变,不过贪心算法在有最优子结构的问题中尤为有效。 最优子结构的意思是问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解,也即 局部最优能推出全局最优。(比如上边那个拿钞票的例子,就相当于分解成10个子问题,每个子问题都是采取相同的策略来解决)

如何能看出局部最优是否能推出整体最优呢?有没有什么固定策略或者套路呢?不好意思,也没有! 靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划(这个比较高级,以后会学到)。有同学问了如何验证可不可以用贪心算法呢? 反证法:如果交换方案中任意两个元素/相邻的两个元素后,答案不会变得更好,那么可以推定目前的解已经是最优解了。 数学归纳法:先算得出边界情况(例如 n=1)的最优解 𝐹1F 1​ ,然后再证明:对于每个 n , 𝐹𝑛+1F n+1​ 都可以由𝐹𝑛F n​ 推导出结果,这个也就是按照“局部最优能推出全局最优”的过程一步一步从边界归纳出全局解的过程。

例题精讲1:

例题精讲2: 

 例题精讲3:

让我们下期见!^_^

BUY! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值