def interval_cover(intervals):
# 按结束端点进行排序
sorted_intervals = sorted(intervals, key=lambda x: x[1])
selected_intervals = [] # 选中的区间列表
last_end = float('-inf') # 上一个选中区间的结束端点
for interval in sorted_intervals:
start, end = interval
if start > last_end: # 区间不相交
selected_intervals.append(interval)
last_end = end
return selected_intervals
# 示例数据
intervals = [(6, 8), (2, 4), (3, 5), (1, 5), (5, 9), (8, 10)]
# 贪心算法求解
result = interval_cover(intervals)
# 输出结果
print("选中的区间:", result)
print("最多能选出 {} 个区间".format(len(result)))