题目描述
某公园将举行多场文艺表演,很多演出都是同时进行,一个人只能同时观看一场演出,且不能迟到早退,由于演出分布在不同的演出场地,所以连续观看的演出最少有15分钟的时间间隔,
小明是一个狂热的文艺迷,想观看尽可能多的演出, 现给出演出时间表,请帮小明计算他最多能观看几场演出。
输入描述
第一行为一个数 N,表示演出场数
1 ≤ N ≤ 1000
接下来 N 行,每行有被空格分割的整数,第一个整数 T 表示演出的开始时间,第二个整数 L 表示演出的持续时间
T 和 L 的单位为分钟
0 ≤ T ≤ 1440
0 < L ≤ 180
输出描述
输出最多能观看的演出场数。
示例1
输入
2
720 120
840 120
输出
1
示例2
输入
2
0 60
90 60
输出
2
演出观看规划:贪心算法解决区间调度问题
核心解题思路
问题分析
题目要求安排观看尽可能多的演出,约束条件包括:
- 不能同时观看两场演出
- 两场连续观看的演出之间至少需要15分钟间隔
- 每场演出必须完整观看(不能迟到早退)
解决方案:贪心算法
- 将演出按结束时间排序:这是贪心算法的关键,优先选择结束时间早的演出
- 维护最后观看时间:记录上一场演出的结束时间
- 选择兼容演出:当前演出的开始时间必须≥上一场演出的结束时间+15分钟
完整代码实现
def max_concerts():

(附详细解题思路)&spm=1001.2101.3001.5002&articleId=149687638&d=1&t=3&u=ed31668751db4dc1a609faaea2f4c733)
28万+

被折叠的 条评论
为什么被折叠?



