基础贪心问题总结

本文详细探讨了贪心算法在解决信息技术问题中的应用,包括与排序、模拟、双指针等算法的结合,以及在区间问题、不等式和字符串处理中的策略。通过实例分析,阐述了贪心选择策略如何在不同场景下找到局部最优解,并进一步讨论了如何判断贪心算法是否能得到全局最优解。此外,还列举了多个典型题目,如区间覆盖、最大不相交区间和字符串贪心问题,帮助读者深入理解贪心算法的实际运用。
摘要由CSDN通过智能技术生成

贪心,就是取局部最优解,通常贪心问题能获得最优解的情况都是当前局部最优不会影响到全局最优,或者可以扩大到全局最优,如果从全局的角度来看,当前局部最优的选择策略是错误的,那么贪心算法就不适用了

贪心问题就是不考虑全局,尽可能的选择某种属性的物品,只有当局部最优可以扩展到全局最优的时候,贪心的策略才是正确的

主要有以下几种类型

1.贪心+...算法

贪心作为一个经典算法,经常和其他的算法一起考察,其中较为重要的是贪心+排序和贪心+模拟

贪心+排序

这里的排序,一般都是发现题目中所有元素的共同性,运用这个属性进行排序

普通排序        跳跳! - 洛谷

                      [NOIP2008 普及组] 排座椅 - 洛谷

需要推公式的排序  见下

有关区间问题的排序  见下

贪心+模拟

根据题目给的要求,模拟,并作出贪心的选择,一般比较复杂,需要考虑多种情况,最好分析结束再编程

P1016 [NOIP1999 提高组] 旅行家的预算(贪心+模拟)_qq12323qweeqwe的博客-CSDN博客

双指针+贪心

 双指针+贪心会应用到双指针各种性质,做出贪心的选择并不难,难的是运用双指针算法

455. 分发饼干_qq12323qweeqwe的博客-CSDN博客

最大子段和(贪心,一维,二维)_qq12323qweeqwe的博客-CSDN博客

763. 划分字母区间(滑动窗口,贪心)_qq12323qweeqwe的博客-CSDN博客

前缀和差分贪心

前缀和总结_qq12323qweeqwe的博客-CSDN博客

差分总结(一阶,二阶)_qq12323qweeqwe的博客-CSDN博客

2.区间问题

区间问题是贪心问题的经典题型 

区间问题,特别要在意的是排序的选择

左端点升序,左端点降序,右端点升序,右端点降序

尽管名字相似,但在排序后,他们可以达到的效果是截然不同的

1.左端点升序

 左端点升序,左端点越小的在数组前面

左端点升序的特点是,只按照左端点为第一关键字升序,那么他后面的数组元素有可能会比他完全小(如图被完全包含),而并不会比他完全大,这个性质与右端点升序是相反的

2.右端点升序 

右端点升序,右端点越小的在数组前面

 如图,和刚才的左端点升序完全相反,后面的元素有可能比他完全大,而不会完全小,这两种性质在贪心问题中经常遇到

同理,右端点降序是只有完全小,没有完全大

左端点降序是只有完全大,没有完全小

区间选点问题

模板题:905 区间选点_qq12323qweeqwe的博客-CSDN博客

应用题:

简单              452. 用最少数量的箭引爆气球

中等              110. 防晒(区间选点,贪心)_qq12323qweeqwe的博客-CSDN博客

                     112. 雷达设备_qq12323qweeqwe的博客-CSDN博客

进阶              127. 任务(贪心,二维区间选点问题)_qq12323qweeqwe的博客-CSDN博客

最大不相交区间

最大不相交区间类似于区间选点问题

模板题    908. 最大不相交区间数量_qq12323qweeqwe的博客-CSDN博客

简单        无重叠区间​​​​​​

leetcode 56. 合并区间(区间,贪心)_qq12323qweeqwe的博客-CSDN博客

               

区间分组

区间分组和区间选点问题是区间问题的常见题型,区间分组问题使用了最小堆来优化,可以达到O(nlogn)的时间复杂度

模板题        906. 区间分组_qq12323qweeqwe的博客-CSDN博客

中等:        111. 畜栏预定(贪心,区间分组)_qq12323qweeqwe的博客-CSDN博客

                   P4447 [AHOI2018初中组]分组_qq12323qweeqwe的博客-CSDN博客

区间覆盖

模板题:907. 区间覆盖_qq12323qweeqwe的博客-CSDN博客

不等式

在贪心题目中,常常需要找出某种性质进行排序,不等式就是其中的一种性质

 排序不等式

913. 排队打水(贪心,排列不等式)_qq12323qweeqwe的博客-CSDN博客

均值不等式

1235. 付账问题(贪心,均值不等式)_qq12323qweeqwe的博客-CSDN博客

绝对值不等式

模板题:104. 货仓选址_qq12323qweeqwe的博客-CSDN博客

进阶题:122. 糖果传递_qq12323qweeqwe的博客-CSDN博客

字符串贪心

字符串贪心就是对字符串进行的一系列贪心操作

模板题:best cow line(字符串贪心)_qq12323qweeqwe的博客-CSDN博客e

简单:179. 最大数_qq12323qweeqwe的博客-CSDN博客

中等:1239. 乘积最大(字符串贪心)_qq12323qweeqwe的博客-CSDN博客

推公式

推公式即递推不等式,通过递推发现邻项的性质,常用邻项交换

耍杂技的牛
P1080 国王游戏(c++)_qq12323qweeqwe的博客-CSDN博客_c++国王游戏

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值