美文网首页
92. 背包问题

92. 背包问题

作者: 薄荷糖的味道_fb40 | 来源:发表于2019-05-18 23:44 被阅读0次

描述

在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]。

样例

样例 1:
    输入:  [3,4,8,5], backpack size=10
    输出:  9

样例 2:
    输入:  [2,3,5,7], backpack size=12
    输出:  12

思路:

dp[i][j]为前i个物品是否能拼成重量j。则dp[i][j]=true取决于两种情况:
1.前i-1个物品能够拼成重量j
2.前i-1个物品能够拼成重量j-A[i-1]
具体实现如下。

class Solution {
public:
    /**
     * @param m: An integer m denotes the size of a backpack
     * @param A: Given n items with size A[i]
     * @return: The maximum size
     */
    int backPack(int m, vector<int> &A) {
        // write your code here
        int n=A.size();
        if(!n)
        {
            return 0;
        }
        vector<vector<bool>> dp(n+1,vector<bool>(m+1,false));
        for(int i=0;i<=n;i++)
        {
            dp[i][0]=true;
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                dp[i][j]=dp[i-1][j];
                if(j-A[i-1]>=0)
                {
                    dp[i][j]=dp[i][j]||dp[i-1][j-A[i-1]];
                }
            }
        }
        for(int i=m;i>=0;i--)
        {
            if(dp[n][i])
            {
               return i; 
            }
        }
        return 0;
    }
};

相关文章

  • 92. 背包问题

    描述在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i] 注意事项 你不可...

  • 92. 背包问题

    描述 在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]。 样例 思路:...

  • 背包问题(完全背包)

    动态规划合集: 1.矩阵链乘法2.投资组合问题3.完全背包问题4.01背包问题5.最长公共子序列 例题3——背包问...

  • Algorithm进阶计划 -- 动态规划(下)

    经典动态规划背包问题最长子序列问题 1. 背包问题 1.1 0-1 背包问题 0-1 背包问题,描述如下: 上面...

  • 背包问题

    0-1背包问题 问题 n个物体,它们各自有重量和价值,给定一个有容量的背包,如何让背包里装入的物体价值总和最大? ...

  • 背包问题

    问题描述 假如有一个能装下4磅的背包,如何从下列商品列表中选择商品填充背包,使价值达到最大: 动态规划 要解决背包...

  • 背包问题

    (1)0-1背包容量为10的背包,有5种物品,每种物品只有一个,其重量分别为5,4,3,2,1,其价值分别为1,2...

  • 背包问题

  • 背包问题

    01背包(物品只有一个) 有N件物品和一个容量为V的背包。第i建物品的费用是w[i],价值是v[i]。求解将哪些物...

  • 背包问题

    1. 01背包 状态说明:背包体积为v,物品个数为n,f[n,v]表示前n件物品加入背包的最大价值。c_i,w_i...

网友评论

      本文标题:92. 背包问题

      本文链接:https://www.haomeiwen.com/subject/wnnxzqtx.html