本题是典型的区间调度问题,可以使用贪心算法解决。
每部电影看作一个区间 [start,end]。因为同一块银幕同一时间只能播放一部电影,所以要选择尽可能多的不重叠区间。
贪心策略:
先将所有电影按照结束时间 end 从小到大排序。
某电影院有 1 块银幕,每天需要安排多部电影在不同时段进行放映。每部电影有固定的放映时长和要求的放映时间段,且每个被选中放映的电影确保在对应时段能够完整占用。由于每块银幕同一时间只能放映一部电影,需要合理规划,使得每天能够放映的电影数量最多。如果第一场电影结束时间与第二场电影的开始时间相同,能够连续放映。
给定 n 部电影的放映时间区间,请计算最多可以放映多少部电影。
第一行: n (电影数量) , 1≤n≤105
接下来 n 行: 每行两个整数 start[i] 和 end[i] , 表示第 i 部电影的放映开始时间和结束时间, 0≤start[i]<end[i]≤1440 (一天内的分钟数) (时间以分钟表示, 1 小时为 60 分钟; 如 9:00=540, 12:00=720)
一个整数: 最多可以放映的电影数量
输入
3
540 660
540 600
660 780
输出
2
说明
最多可以 2 部电影, 可以选择 540-660 和 660-780, 或者 540-600 和 660-780
输入
5
0 1000
100 900
200 800
300 700
400 600
输出
1
说明
因为各电影的播放时间均有重叠, 所以最多可以有一部电影播放
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册