一、题目描述
有若干个文件,使用刻录光盘的方式进行备份,假设每张光盘的容量是500MB。
求使用光盘最少的文件分布方式,所有文件的大小都是整数的MB,且不超过500MB,文件不能分隔、分卷打包。
二、输入描述
每组文件大小的数据。
三、输出描述
使用光盘的数量。
四、解题思路
题目要求找出使用光盘最少的文件分布方式,使得所有文件都能被备份,每张光盘的容量为500MB。文件的大小都是整数的MB,且不超过500MB。
解题思路如下:
- 读取输入的每组文件大小的数据,并将其转换为整数数组;
- 对文件的大小进行升序排序,以便从小到大进行分配;
- 使用二分查找确定最少的光盘数量。
- 初始化left为0,表示使用0个光盘;right为files.length + 1,表示使用files.length + 1个光盘(最坏情况);
- 当left < right时,进行二分查找:
- 计算mid为(left + right) / 2。</