貪心演算法-最優裝載問題
阿新 • • 發佈:2018-11-02
最優裝載問題。給出n個物體,第i個物體重量為w[i]。選擇儘量多的物體,使得總重量不超過C。
【分析】
由於只關心物體的數量,所有裝重的沒有裝輕的划算。只需把所有物體按重量從小到大排序,一次選擇每個物體,直到裝不下為止。這是一種典型的貪心演算法,只顧眼前,但能得到最優解。
---------------------
作者:za30312
來源:CSDN
原文:https://blog.csdn.net/za30312/article/details/78253318
版權宣告:本文為博主原創文章,轉載請附上博文連結!
import java.util.*; public class Zuoyouzhuangzai { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt(); List list=new ArrayList<Integer>(); for(int i=0;i<n;i++){ list.add(in.nextInt()); } //從小到大排序 Collections.sort(list); int c=in.nextInt(); int k=0; //貪心裝載 for(int j=0;j<n;j++){ if(c>=(int)list.get(j)){ c-=(int)list.get(j); k++; }else{ break; } } System.out.println(k); } } }