12_8 01背包问题

一个背包有一定的承重cap,有N件物品,每件都有自己的价值,记录在数组v中,也都有自己的重量,记录在数组w中,每件物品只能选择要装入背包还是不装入背包,要求在不超过背包承重的前提下,选出物品的总价值最大。

给定物品的重量w价值v及物品数n和承重cap。请返回最大总价值。

测试样例:
[1,2,3],[1,2,3],3,6
返回:6

class Backpack {
public:
    int maxValue(vector<int> w, vector<int> v, int n, int cap) {
        // write code here
        vector< vector<int> > dp(n+1, vector<int>(cap+1, 0));
        for(int i=0; i<n; ++i){
            for(int j=0; j<cap; ++j){
                dp[i+1][j+1] = max(dp[i][j+1],
                                (j+1-w[i] < 0 ? 0 : dp[i][j+1-w[i]] + v[i]));
            }
        }
        return dp[n][cap];
    }
};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、简介 假设我们有n件物品,分别编号为1, 2...n。其中编号为i的物品价值为vi,它的重量为wi。为了简化问...
    文哥的学习日记阅读 34,609评论 9 23
  • 我在进行一些互联网公司的技术笔试的时候,对于我来说最大的难题莫过于最后的那几道编程题了,这对算法和数据结构有一定程...
    柠檬乌冬面阅读 20,051评论 2 19
  • 01背包的问题很早就想写了,但是因为一些意外的事情耽搁了下来今天补习一下01背包问题的计算过程。首先,01背包的问...
    碧影江白阅读 319评论 0 0
  • 1.谈最喜欢的小说类型以及理由。 最喜欢小说应该是情感类的吧。 最喜欢的作家是川端康成,其代表作应是《雪国》。 喜...
    Ally育儿咨询师阅读 295评论 10 2
  • 一个真实的案例,事件发生在四川省泸州市纳溪区上马镇,主家请一风水“大师”为其葬亲,坤龙,立申山向寅、乙方消水口,用...
    桂玉林阅读 911评论 0 0