拿下技术面上传简历

区间调度:给定 n 个区间 [l_i, r_i),选最多互不重叠的区间,n=10^5。按右端点升序、每次选与上一个不冲突的最早结束区间是正确贪心。请用交换论证说明为什么按右端点可以,而按左端点或区间长度排序不对?如果每个区间带不同权重,贪心还成立吗?

数据结构与算法动态规划与贪心3-5 年知识点 1 个

面试官在考什么

判断候选人能否给出可检验的贪心证明,而不是只背结论;并知道贪心失效的边界。

贪心证明

回答框架 · 前两步

  1. 按右端点升序,每次选与上一个不冲突且右端点最小的区间,得到最多数量。
  2. 交换论证:设最优解第一个区间为 O,贪心选 G,则 r_G<=r_O;用 G 替换 O 后剩余可用区间从更早或相同位置开始,可行区间不减少,故不劣。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题