trending_up贪心

贪心题型:怎么识别、怎么讲、怎么练

贪心不是靠语法识别的模式,而是当某个局部选择可以被证明“安全”时,你才能放心使用它。证明通常来自交换论证或边界论证。

覆盖题量

45+

推荐起手

先明确写出你的贪心选择是什么。

高频误区

只觉得应该贪,却没有任何反例验证。

什么时候该想到这个模式

某个局部选择很自然,而且你能解释为什么拖延它不会更好。
按某个关键字排序后,后续决策 suddenly 变简单。
DP 似乎能做,但明显太重,题目也更像在考结构。

下手前的检查清单

先明确写出你的贪心选择是什么。
解释为什么任意一个最优解都能被调整成做同样选择。
确认排序是证明的一部分,还是只是实现方便。
先找反例,再决定能不能贪。

真正适合面试表达的解题步骤

1

先找出那个最能保留未来选择空间的局部决策。

2

如果排序能让这个选择被验证,就先排序。

3

说明做出贪心选择后保持了什么不变式。

4

用交换论证或证明草图说明为什么它正确。

5

最后再落成线性扫描或边界维护代码。

常见变体

区间调度

按结束时间或开始时间排序,核心是保留未来选择空间。

可达性贪心

持续维护当前最远可达边界。

资源分配

优先选择能最小化未来代价或冲突的方案。

模板预览

Python公开预览
items.sort(key=priority)
answer = 0
for item in items:
    if can_take(item):
        take(item)
        answer = update(answer)

更像真实刷题路径的推荐题单

这组题不是随机罗列,而是按“先建立识别感,再补关键变体,最后上强度”去排,适合真的拿来做一轮 pattern 复习。

高频坑点

warning

只觉得应该贪,却没有任何反例验证。

warning

按一个看起来顺眼的 key 排序,但它并不支撑正确性。

warning

把单调边界问题误判成 DP,或者反过来。

warning

只讲实现,不讲为什么贪心成立。

练习顺序建议

1

先做跳跃游戏和区间合并/删除。

2

再刷射爆气球和队列重建。

3

然后补资源预算和分配类贪心题。

4

最后再做需要较强证明的高难贪心。

贪心题型总结 | LeetCode 高频面试模式 - Interview AiBox