1. 题目

给出 n 个物品, 以及一个数组, nums[i] 代表第i个物品的大小, 保证大小均为正数, 正整数 target 表示背包的大小, 找到能填满背包的方案数。

每一个物品只能使用一次

样例
给出候选物品集合 [1,2,3,3,7] 以及 target 7
结果的集合为:
[7]
[1,3,3]
返回 2

2. 解题

  • dp[i][j]dp[i][j]dp[i][j] 表示第 i 个物品下,重量为 j 的方案数
class Solution {public:int backPackV(vector<int> &nums, int target) {if(nums.size() == 0)return 0;if(target == 0)return 1;int n = nums.size(), i, j;vector<vector<int>> dp(n,vector<int>(target+1, 0));dp[0][0] = 1;//第一个物品不放if(nums[0] <= target)dp[0][nums[0]] = 1;//第一个物品放,1种方案for(i = 1; i < n; i++)//遍历剩余的物品{for(j = 0; j <= target; j++){if(dp[i-1][j] != 0)//上一行所有存在的状态{dp[i][j] += dp[i-1][j];//i个物品不放if(j <= target-nums[i])//i个物品放进去不超重dp[i][j+nums[i]] += dp[i-1][j];}}}return dp[n-1][target];}
};
  • 当前行状态只依赖于上一行,可以进行状态压缩,节省存储空间,代码略。

100% 数据通过测试
总耗时 201 ms
您的提交打败了 45.80% 的提交!

LintCode 563. 背包问题 V(DP)相关推荐

  1. 0-1背包问题(DP)-超有趣版

    0-1背包问题(DP)-超有趣版 文章目录 0-1背包问题(DP)-超有趣版 一. 0-1背包问题 二. 0-1背包问题分析 三.0-1背包问题--DP算法求解 四.0-1背包问题--DP算法深入分析 ...

  2. LintCode 125. 背包问题 II(DP)

    1. 题目 有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个物品的大小 数组 V 表示每个物品的价值. 问最多能装入背包的总价值是多大? 样例 1: 输入: m = 10, A = [ ...

  3. PAT甲级1103 Integer Factorization (30 分):[C++题解]背包问题,DP解法

    文章目录 题目分析 题目链接 题目分析 分析 把N(样例中N=169)看成背包的体积:把k(样例中k=5)看成背包能承的重量.把这道题转化为二维完全背包问题.由于数据范围给出的次幂P∈[2,7],那么 ...

  4. ACwing 3. 完全背包问题(DP)

    文章目录 1. 题目 2. 解题 1. 题目 有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用. 第 i 种物品的体积是 vi,价值是 wi. 求解将哪些物品装入背包,可使这些物品的总体 ...

  5. ACwing 2. 01背包问题(DP)

    文章目录 1. 题目 2. 解题 1. 题目 有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品的体积是 vi,价值是 wi. 求解将哪些物品装入背包,可使这些物品的总体积 ...

  6. LintCode 92.背包问题

    描述 在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i] 样例 样例 1:输入: [3,4,8,5], backpack size=10输出: 9样例 2:输 ...

  7. PAT甲级1068 Find More Coins (30 分):[C++题解]DP、背包问题、dp输出方案

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:m是背包容量,a1,a2,....,ana_1,a_2,....,a_na1​,a2​,....,an​是n个物品,第i个物品的体积是 ...

  8. 01背包问题(dp)

    题目 有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品的体积是 vi,价值是 wi. 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大. 输出最大 ...

  9. LintCode解题目录

    看见 LintCode 的代码能力测试CAT(Coding Ability Test)挺好,有倒计时,挺有面试紧迫感.做个记录. 另有本人 LeetCode解题目录.<程序员面试金典>解题 ...

最新文章

  1. OpenAI Gym介绍
  2. DJANGO获取用户访问IP
  3. 导入android studio项目,编译失败
  4. C语言:输入两个数,输出最大公约数,最小公倍数
  5. python操作dom_Python Dom 的介绍和使用day1
  6. FPGA机器学习之stanford机器学习第三堂1
  7. mysql的存储过程正负数的变化_《转》mysql存储过程语法及范例
  8. JavaScript onerror 事件( window.onerror = )
  9. C++笔记-Stack around the variable问题解析
  10. 【Leetcode】102. 二叉树的层次遍历
  11. 4.2 文本特征抽取的两种方式CountVectorizer与TfidfVectorizer
  12. 有感于Oracle 9i的QueryHints
  13. 注解实现接口拦截功能
  14. 单片机51keil编程流程
  15. 计算机专业导论论文范文,计算机新导论论文范文
  16. 2021年一季度口腔护理行业网络关注度分析报告
  17. Python使用阿里API进行情感分析
  18. 使用Windows 10自带工具 校验MD5 SHA1 SHA256类型文件
  19. android自动识别文字,Android文字识别tesseract ocr -训练样本库 识别字库
  20. 新三板精选层股票名单 新三板精选层概念股龙头

热门文章

  1. python cross val score_sklearn函数:cross_val_score(交叉验证评分)
  2. android pss内存,如何释放android系统中pss cache住的内存
  3. java父子表_Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级...
  4. java 圆的交点_java – 获取线条和形状的交点
  5. spring集成 log4j + slf4j
  6. dubbo学习 三 dubbox概述
  7. 8.0/9.0 Email 设置
  8. 基于Spring框架的Shiro配置
  9. 七、jdk工具之jconsole命令(Java Monitoring and Management Console)
  10. 诚邀参加微软.NET俱乐部10月24日Windows 7社区发布会