编辑代码

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)))