lintcode -- 背包问题
来源:互联网 发布:linux 查看时区 编辑:程序博客网 时间:2024/09/21 09:27
在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]
注意事项
你不可以将物品进行切割。
如果有4个物品[2, 3, 5, 7]
如果背包的大小为11,可以选择[2, 3, 5]装入背包,最多可以装满10的空间。
如果背包的大小为12,可以选择[2, 3, 7]装入背包,最多可以装满12的空间。
函数需要返回最多能装满的空间大小。
/*public class Solution {
public int backPack(int m, int[] A) {
// write your code here
int len = A.length;
int[][] P = new int[len+1][m+1];
for(int i = 1;i<= len; i++){
//for(int j = 1;j<m+1;j++){
for(int j=m;j>=0;j--){//不能j>=A[i]
//判断!!
if(A[i-1]<=j){
P[i][j] = P[i-1][j-A[i-1]] + A[i-1];
}
P[i][j] = Math.max(P[i][j],P[i-1][j]);
}
}
return P[len][m];
}
}*///博客
public class Solution {
public int backPack(int m, int[] A) {
int len = A.length;
int[] result = new int[m + 1];
for (int i = 0; i < len; i++) {
for (int j = m; j >= A[i]; j--) {//!!j>=A[i]
int temp = result[j - A[i]] + A[i];
result[j] = Math.max(result[j], temp);
}
}
return result[m];
}
}
- LintCode-背包问题 II
- 【LintCode】Backpack 背包问题
- lintcode-背包问题-92
- LintCode : 背包问题 II
- LintCode :背包问题
- LintCode : 背包问题 II
- lintcode backpack 背包问题
- LintCode:背包问题
- LintCode:背包问题 II
- LintCode(M)背包问题
- LintCode:背包问题
- LintCode:01背包问题
- LintCode 62-背包问题
- LintCode 背包问题
- 背包问题-LintCode
- Lintcode 背包问题
- LintCode背包问题总结
- lintcode -- 背包问题
- MUI-最接近原生App体验的前端框架学习记录
- 类型(System.Web.UI.HtmlControls.HtmlIframe)与控件类型(System.Web.UI.HtmlControls.HtmlGenericControl)不兼容
- Android初级获取联系人电话号码
- 算法小技巧
- ORA-12988: 无法删除属于 SYS 的表中的列
- lintcode -- 背包问题
- 笨小熊(南阳理工oj 题目62)
- Cookie与Session的区别与联系及生命周期
- 《面试》--数据结构常见题目分析
- [leetcode]133. Clone Graph@Java解题报告
- HDU
- kylin jdbc连接
- 关注回复图文,天气查询
- java数据结构与算法-高级排序-快速排序