题目解析
本题数量级不大,可以考虑暴力破解。
即暴力枚举预定记录的所有组合情况,假设有三个预定记录分别为序号0,1,2,则存在下面组合:
- 0
- 1
- 2
- 0,1
- 0,2
- 1,2
- 0,1,2
如果对应组合的预计记录可以安排到m个座位上,则对应组合是一个可行策略,我们计算对应组合的座位使用率。最后保留最大的座位使用率即为题解。
那么怎么判断组合是一个可行策略呢?
这里我们可以对组合内预定记录按照开始时间升序,然后依次遍历,将遍历出来的预定记录[s2, e2)尝试放到每一个座位上(假设当前座位上会记录已有预定记录[s1, e1))
- 如果 s2 >= e1,则遍历出来的预定记录可以放到当前座位上,则当前预定记录已找到合适的座位,此时停止尝试,继续遍历组合内的下一个预定记录
- 如果 s2 < e1,则继续尝试放到后面的座位上
如果所有座位都无法满足遍历出来的预定记录[s2, e2),则当前组合不是一个可行策略。
如果所有预定记录都找到座位了,则当前组合是一个可行策略。
提供两个自测用例ÿ