Java實現-揹包問題I
在n個物品中挑選若干物品裝入揹包,最多能裝多滿?假設揹包的大小為m,每個物品的大小為A[i]
注意事項
你不可以將物品進行切割。
樣例
如果有4個物品[2, 3, 5, 7]
如果揹包的大小為11,可以選擇[2, 3, 5]裝入揹包,最多可以裝滿10的空間。
如果揹包的大小為12,可以選擇[2, 3, 7]裝入揹包,最多可以裝滿12的空間。
函式需要返回最多能裝滿的空間大小。
public class Solution {
/**
* @param m: An integer m denotes the size of a backpack
* @param A: Given n items with size A[i]
* @return: The maximum size
*/
public int backPack(int m, int[] A) {
// write your code here
if(m==0||A.length==0||A==null){
return 0;
}
int[][] dp=new int[A.length+1][m+1];
for(int i=1;i<=A.length;i++){
for(int j=m;j>=0;j--){
if(j>=A[i-1]){
dp[i][j]=dp[i-1][j-A[i-1]]+A[i-1];
}
dp[i][j]=Math.max(dp[i][j], dp[i-1][j]);
}
}
return dp[A.length][m];
}
}
相關文章
- Java實現-揹包問題IIJava
- Java實現-揹包問題VIJava
- 【演算法資料結構Java實現】Java實現動態規劃(揹包問題)演算法資料結構Java動態規劃
- ACM 揹包問題ACM
- 從【零錢兌換】問題看01揹包和完全揹包問題
- 詳解動態規劃01揹包問題--JavaScript實現動態規劃JavaScript
- 詳解動態規劃01揹包問題–JavaScript實現動態規劃JavaScript
- JavaScript中揹包問題(面試題)JavaScript面試題
- 揹包問題例題總結
- JavaScript 揹包問題詳解JavaScript
- javascript演算法基礎之01揹包,完全揹包,多重揹包實現JavaScript演算法
- 【動態規劃】0-1揹包問題原理和實現動態規劃
- 揹包問題解題方法總結
- 01揹包問題的解決
- 揹包問題----動態規劃動態規劃
- 【動態規劃】揹包問題動態規劃
- 揹包問題的演算法演算法
- chapter12-2-揹包問題APT
- 動態規劃 01揹包問題動態規劃
- 【動態規劃】01揹包問題動態規劃
- 【leetcode】揹包問題彙總LeetCode
- 動態規劃-01揹包問題動態規劃
- 動態規劃篇——揹包問題動態規劃
- 【動態規劃】01揹包問題【續】動態規劃
- 【演算法】0-1揹包問題演算法
- leetcode題解(0-1揹包問題)LeetCode
- 基礎揹包問題的一些題目!!
- 01揹包、完全揹包、多重揹包詳解
- Codeup 貨幣系統(完全揹包問題)
- 0-1揹包問題(動態規劃)動態規劃
- acm演算法之三大揹包問題ACM演算法
- 前端與演算法-動態規劃之01揹包問題淺析與實現前端演算法動態規劃
- java中i=i++的問題Java
- 動態規劃之0,1揹包問題動態規劃
- 動態規劃系列之六01揹包問題動態規劃
- 動態規劃解0-1揹包問題動態規劃
- 多重揹包問題的單調佇列優化佇列優化
- 0-1揹包問題 動態規劃法動態規劃