一、贪心区间问题:
(1)贪心问题的区间问题通常是要按照区间的一端来进行排序,这样做是因为我们排好序后一般都要遍历一遍整个数组,按照端点的一端排序能让 前面的不会影响后面的 或者 后面不会影响前面的
(2)至于选择哪一个端点排序,我认为都应该是可行的(其实是我瞎猜的)
(3)区间问题通常需要我们去更新某一段区间或某一个值,那么我们就先要找好初始化的情况,再去更新
(4)区间贪心问题的证明方法一般是由两个式子 :
来推出最后的结论(通过我们的算法得到的最后结果与最优解相同):
下面放几道区间的题目:
AcWing 905. 区间选点 (已笔记) AcWing 906. 区间分组 (已笔记) AcWing 907. 区间覆盖 (已笔记)
二、绝对值不等式问题:
绝对值不等式问题是用到了绝对值相加和相减的数学性质,一般用于求解距离问题 贴一道经典题目: 104. 货仓选址
三、排序不等式:
通常这类需要排序的贪心问题都有一个或两个的属性,需要按照某一特性进行排序,那么如何选择根据什么特性来排序呢?有一个很重要的结论:一般而言,贪心排序可以只由两个的排序方案来得到整个数组的排序方案,也就是以小推到大
详细步骤:
(1)只取两个元素
(2)将题目所要求的值分别用这两个元素的属性表示出来
(3)通过“如果某一个更优”的原则来列出不等式
贴几道题目: 125. 耍杂技的牛 913. 排队打水
四、树的层序遍历贪心问题:
这个不好说明,直接放题目: AcWing 4793. 危险程度(已做笔记)
六、总结一下:
贪心常用的证明方法有调整法,反证法,数学归纳法,还有一种大于等于、小于等于法(我也不知道怎么表示)
最后贴一道题: 1054. 股票买卖(一道不规则的贪心,值得了解)