题解 | #01背包#

01背包

https://www.nowcoder.com/practice/2820ea076d144b30806e72de5e5d4bbf

#include <algorithm>
#include <climits>
#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算01背包问题的结果
     * @param V int整型 背包的体积
     * @param n int整型 物品的个数
     * @param vw int整型vector<vector<>> 第一维度为n,第二维度为2的二维数组,vw[i][0],vw[i][1]分别描述i+1个物品的vi,wi
     * @return int整型
     */
    //dp[j]为空间容量为j的背包所能装载的最大重量
  //dp[j]=max{da[j-vi]+wi}
    int knapsack(int V, int n, vector<vector<int> >& vw) {
        // write code here
        vector<int>dp(V+1,0);
        for (int i=0; i<vw.size(); i++) {
            for (int j=V; j>=vw[i][0]; j--) {
                dp[j]=max(dp[j-vw[i][0]]+vw[i][1], dp[j]);
            }
        }
        return dp[V];
    }
};

全部评论

相关推荐

03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务