class Solution {
public:
int backPack(int m, vector<int> A) {
bool f[A.size()+1][m+1] ;
int size=A.size();
for (int i = 0; i <= size; ++i) {
f[i][0] = true;
}
for (int j = 1; j <= m; ++j) {
f[0][j] = false;
}
for (int i = 1; i <= size; i++) {
for (int j = 0; j <= m; j++) {
f[i][j] = f[i-1][j];
if (j >= A[i-1] && f[i-1][j - A[i-1]]) { // 保证j-A[i]不是负数
f[i][j] = true;
}
}
}
for (int i = m; i >= 0; --i) { // max size
if (f[size][i]) {
return i;
}
}
return 0;
}
};
lintcode-背包问题-92
最新推荐文章于 2024-10-14 15:57:58 发布
本文深入探讨了C++中函数模板的应用与实现,详细解释了模板元编程的概念,通过实例展示了如何利用函数模板解决实际问题,旨在帮助读者理解和掌握这一高级特性。
380

被折叠的 条评论
为什么被折叠?



