编辑代码

# 区间覆盖问题
def interval_cover(intervals):
    intervals.sort(key=lambda x: x[1])
    selected_intervals = []
    uncovered_point = float('-inf')

    for interval in intervals:
        if interval[0] > uncovered_point:
            selected_intervals.append(interval)
            uncovered_point = interval[1]

    return selected_intervals

# 测试用例1
intervals1 = [(1, 3), (2, 4), (3, 6), (5, 7), (8, 9)]
print("区间覆盖问题测试结果:", interval_cover(intervals1))  # 应输出:[(1, 3), (5, 7), (8, 9)]

# 测试用例2
intervals2 = [(1, 4), (2, 3), (3, 5), (6, 8), (7, 9)]
print("区间覆盖问题测试结果:", interval_cover(intervals2))  # 应输出:[(2, 3), (3, 5), (7, 9)]