贪心算法Q1—— 最优装载问题
问题描述
在北美洲东南部,有一片神秘的海域,那里碧海 蓝天、阳光明媚,这正是传说中海盗最活跃的加勒比海。17 世纪时,这里更是欧洲大陆 的商旅舰队到达美洲的必经之地,所以当时的海盗活 动非常猖獗。有一天,海盗们截获了一艘装满各种各样古董的 货船,每一件古董都价值连城,一旦打碎就失去了它 的价值。
虽然海盗船足够大,但载重量为 30,每件古董的重量分别为 3,5,4,10,7,14,2,11,
海盗们该如何把尽可能多数量的宝贝装上海盗船呢?
package 贪心;
import java.util.Arrays;
public class 最优装载问题 {public static void main(String[] args) {Integer[] weights= {3,5,4,10,7,14,2,11};Arrays.sort(weights);
int capacity=30,count=0,newWeight=0;for(int i=0;i<weights.length&&newWeight<capacity;i++) {newWeight=newWeight+weights[i];if(newWeight<=capacity) {count++;System.out.println(weights[i]);}}System.out.println(count);}}