题目链接:力扣

定义dp数组:dp[i][j]表示能否从nums下标0~j任意选择数,使它们之和为j,dp数组为bool类型

状态转移方程:下标为i的数不选,dp[i][j]等价于dp[i-1][j](两个式子同真假)

下标为i的数, dp[i][j]等价于dp[i-1][j-nums[i]](j-nums[i]小于0)(两个式子同真假)

所以,dp[i][j]与dp[i-1][j] || dp[i-1][j-nums[i]]同真假

初始化

(1)j为0时,不可能从正数中选出和为0的数,dp[i][0]均为假

(2)i为0时,只能选择下标为0的数, dp[0][nums[0]]为真,其余均为假

代码:
代码:

 int sum = 0;for (auto element : nums){sum += element;}if (sum % 2 != 0){return false;}int target = sum / 2;vector<vector<bool>>dp(nums.size(), vector<bool>(target + 1, false));for (int i = 0; i < nums.size(); i++){dp[i][0] = false;}for (int j = 0; j <= target; j++){if (j == nums[0])dp[0][j] = true;}for (int i = 1; i < nums.size(); i++){for (int j = 1; j <= target; j++){if (j - nums[i] < 0){dp[i][j] = dp[i - 1][j];}elsedp[i][j] = dp[i - 1][j] || dp[i - 1][j - nums[i]];}}return dp[nums.size() - 1][target];

动态规划:leetcode 416 分割等和子集(背包问题应用)相关推荐

  1. [动态规划] leetcode 416. 分割等和子集

    问题描述:    分割等和子集:给你一个只包含正整数的非空数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等.   例子:输入nums = {1, 5, 11 , 5 ...

  2. LeetCode 416 分割等和子集

    LeetCode 416 分割等和子集 题目链接 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会 ...

  3. LeetCode 416. 分割等和子集 【c++/java详细题解】

    来自专栏<LeetCode高频面试题> 欢迎订阅 目录 1.题目 2.思路 3.二维c++代码 4.二维java代码 5.一维优化 6.一维c++代码 7.一维java代码 1.题目 给你 ...

  4. leetcode - 416. 分割等和子集

    416. 分割等和子集 -------------------------------------------- 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和 ...

  5. Java实现 LeetCode 416 分割等和子集

    416. 分割等和子集 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: ...

  6. leetcode 416. 分割等和子集

    分割等和子集题解集合 DFS 记忆化搜索 记忆化搜索的另一种写法 动态规划 「滚动数组」解法 「一维空间优化」解法 DFS 思路 题意就是:给你一个非空数组,和为sum,你能否找到一个子序列,和为su ...

  7. LeetCode 416. 分割等和子集(动态规划)

    1. 题目 给定一个只包含正整数的非空数组. 是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [ ...

  8. LeetCode 416. 分割等和子集(动态规划)(0-1背包)

    题目描述 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, ...

  9. LeetCode #416 分割等和子集

    题目: 给你一个 只包含正整数 的 非空 数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 示例 1: 输入:nums = [1,5,11,5] 输出:true ...

最新文章

  1. windows系统下的FTP命令
  2. JS中的this对象详解
  3. Spring Cloud Alibaba即将正式毕业,Netflix之后新生力量值得期待!
  4. Nginx做负载均衡报:nginx: [emerg] could not build the types_hash
  5. 【采用】如何搭建反欺诈策略与模型
  6. transformers库的使用【二】tokenizer的使用,模型的保存自定义
  7. (转)Python 用hashlib求中文字符串的MD5值
  8. react native中一次错误排查 Error:Error: Duplicate resources
  9. RPM安装包-Spec文件參数具体解释与演示样例分析
  10. [笔记].STM32 BOOT[0:1]启动设置
  11. mysql中两次排序_MySQL中的两种排序方式: index和filesort
  12. hdu--1231--并查集连分量的个数
  13. 用pycharm写python老是提示错误_python pycharm错误集锦
  14. 开源漏洞扫描工具(OWASP-Dependency-Check)探索
  15. 中国女性补体面膜市场趋势报告、技术动态创新及市场预测
  16. HTML 修真录------深渊三君王
  17. Sklearn 中的可用数据集
  18. 计算机访学面试,访学申请Skype面试经历
  19. idea单元测试时,@Test爆红解决方案
  20. Easy Mock 的使用

热门文章

  1. HDU2189 来生一起走【完全背包】
  2. HDU1249 三角形【切割平面】
  3. Matlab Tricks(七)—— 矩阵列/列的归一化/单位化(normalize)
  4. 盈不足术与老鼠打洞问题的近似解
  5. numpy 辨异(一) —— reshape 与 resize
  6. C++设计模式——Composite 组合模式
  7. Google 搜索命令
  8. 群辉服务器根目录新建文件夹,群晖 synology NAS 存储创建存储空间的方法
  9. 内容联盟程序_英雄联盟可以偷看你的网页?你的账号密码还安全吗?
  10. 联想记忆计算机网络,联想记忆网络,associative memory network,音标,读音,翻译,英文例句,英语词典...