问题:给定一个区间的集合 intervals ,其中 。返回最大的不重叠区间的个数。
贪心解:将区间按右端点从小到大排序,从左向右遍历依次选择右端点最小且不与已选择的区间重叠的区间即可。
为什么可以贪心?
这个问题的最优解不唯一。
假设将其中的一个最优解从左往右排序,得到的区间序列为。
如果有一个区间的右端点比小,那么同样是一组最优解。
如果有一个区间的右端点比小,且与不重叠,那么同样是一组最优解。
以此类推。
为什么按右端点排序?
因为我们习惯从左往右正序遍历。当然可以按左端点排序,那我们就要从右往左倒序遍历,依次选择左端点最大的区间。
网友评论