题目解析
本题可以分为两步求解:
- 求光盘数量
- 检查给定光盘数量(每个光盘500M)是否可以放下所有文件
其中,第一步可以使用二分法求解
- 要装入所有文件的至少光盘数量为1,即所有文件之和小于等于500M
- 要装入所有文件的至多光盘数量为文件数量,即每个文件都是500M
我们只需要二分找中间值mid作为可能的解去带入第二步检查即可。
- 如果第二步,检查mid个光盘可以装入所有文件,那么mid就是一个可能解,我们需要记录它,然后尝试更小更优解,即继续二分,二分右边界max = mid - 1
- 如果第二步,检查mid个光盘无法装入所有文件,那么说明mid个光盘不够,我们需要尝试更多光盘,即下次二分是,左边界min = mid + 1
关于第二步的实现,可以参考下面桶装球问题:

已下架不支持订阅
2194

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



