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
- 揹包問題(01揹包與完全揹包)
- 揹包問題
- 【演算法資料結構Java實現】Java實現動態規劃(揹包問題)演算法資料結構Java動態規劃
- ACM 揹包問題ACM
- 01揹包問題
- 揹包問題大合集
- 從【零錢兌換】問題看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揹包問題動態規劃
- 動態規劃-揹包01問題推理與實踐動態規劃
- 【動態規劃】01揹包問題【續】動態規劃
- 【演算法】0-1揹包問題演算法
- leetcode題解(0-1揹包問題)LeetCode
- 基礎揹包問題的一些題目!!
- 01揹包、完全揹包、多重揹包詳解
- 揹包DP——完全揹包
- 揹包DP——混合揹包