开局一个船,半路上捡到好多东西,同等价值,重量不同,船载重有限,怎么才可以尽可能多的带回去
import java.util.ArrayList;
public class 贪心算法之最优装载问题 {
public static void main(String[] args) {
ArrayList<Integer> Arr1 = new ArrayList<>();//记录物品重量
int sum=0;
int max=40;
Arr1.add(4);
Arr1.add(9);
Arr1.add(5);
Arr1.add(18);
Arr1.add(2);
Arr1.add(3);
Arr1.add(6);
Arr1.add(7);
Arr1.add(12);
Arr1.add(4);
Arr1.sort(null);
for(int i=0;i<Arr1.size();i++) {
int t=Arr1.get(i);
if(max>t) {
sum++;
max=max-t;
}
}
System.out.println("带走"+sum+"件物品");
System.out.println("还剩下"+max+"空间");
}
}