背包问题2 (lintcode)
2017-09-10 19:55
211 查看
这里:
for(int j = 1;j <= m;j++)
result[0][j] = 0x80000000;
不能从0开始,result[0][0]是可以取到的,是0。其他情况取不到才用最小表示。
class Solution { public: /* * @param m: An integer m denotes the size of a backpack * @param A: Given n items with size A[i] * @param V: Given n items with value V[i] * @return: The maximum value */ int backPackII(int m, vector<int> &A, vector<int> &V) { // write your code here int length = A.size(); vector<vector<int>> result(length+1,vector<int>(m+1)); for(int i = 0;i <= length;i++) result[i][0] = 0; for(int j = 1;j <= m;j++) result[0][j] = 0x80000000; for(int i = 1;i <= length;i++){ for(int j = 1;j <= m;j++){ if((j - A[i-1]) >= 0) result[i][j] = max(result[i-1][j-A[i-1]] + V[i-1],result[i-1][j]); else result[i][j] = result[i-1][j]; } } int max = 0; for(int i = 1;i <= m;i++){ if(result[length][i] > max) max = result[length][i]; } return max; } };
相关文章推荐
- LintCode:背包问题
- LintCode:M-背包问题 II
- LintCode刷题——背包问题
- 背包问题 II - LintCode
- LintCode(M)背包问题2
- LintCode : 背包问题 II
- LintCode:01背包问题
- lintcode:背包问题
- lintcode-92-背包问题
- LintCode 62-背包问题
- 92.背包问题(lintcode)
- LintCode-背包问题(01背包问题)
- LintCode 125. 背包问题 II
- Lintcode 背包问题
- 【LintCode】Backpack 背包问题
- LintCode : 背包问题 II
- LintCode-背包问题 II
- LintCode(M)背包问题
- [LintCode]92.背包问题
- LintCode背包问题总结