问题描述
We have a number of bins each with a capacity of 1, and we have a set of objects all with different sizes, s1,s2,…,sn between 0 and 1. What is the fewest number of bins that would be needed to store all of the objects?
Instance: 0.5, 0.7, 0.3, 0.9, 0.6, 0.8, 0.1, 0.4, 0.2, 0.5
一维装箱问题只考虑一个因素,比如重量、体积、长度等。
思路一
要求解箱子数目,也就是说不能确定会占用多少个箱子,因此采用链表的形式来存储箱子信息。
我们先将物品由大到小进行排序,每次拿出一个物品从第一个箱子开始遍历:如果可以放下,那么重新拿出一个物品在从第一个开始遍历;如果放不下,就开一个新箱子,将这个物品放在里面。
思路二
还是先将物品由大到小进行排序,每次拿出一个箱子遍历物品,遍历完一次物品就表示一个箱子装满了,然后再开下一个箱子,直到所有的物品装完为止。对于上述题目,既然只需要求出所需箱子的数量,个人认为就没必要用更复杂的数据结构了。
初学算法,这个完全是自己写的,感觉还有待优化,思路一的代码也会尽快完成,出现问题望指正。
//箱子类
class Box {
static int MAX_SIZE = 10;
int id = 0;
int size;
int[] st