给定
输出最少区间数,如果无法完全覆盖则输出
第一行包含两个整数
第二行包含整数
接下来
输出一个整数,表示所需最少区间数。
如果无解,则输出
1 5
3
-1 3
2 4
3 5
2
前置题目:0906
前置知识:双指针
本题知识:贪心-区间问题
- 将所有区间按左端点从小到大排序
- 枚举区间,选择能覆盖 start 且右端点伸出最远的区间,更新 start 为该区间右端点的值
设存在一个选择方法得出的区间数量比算法所求的要小,可以比对两种选择方法找到第一个不同的区间,因为算法选择的是伸出最远的区间,所以都可以通过延长假想选择的区间来保证两个区间的一致同时不影响下一个区间的选择。以此类推,最终两个区间完全一致,故算法所求即是最少的选法。
- 是区间覆盖,而不是整数点集的覆盖
- s = r
- 不漏任何一个区间
- i = j - 1