原题链接:https://leetcode-cn.com/problems/partition-equal-subset-sum/

相关题目:组合总和 Ⅳ

动态规划

dp[i]表示目前能否构成和为i的等和子集

状态转移

dp[num]=true;
dp[i]=dp[i-num]; num为nums中的数

代码:

bool canPartition(vector<int>& nums) {int sum = accumulate(nums.begin(), nums.end(), 0);if (sum % 2) return false;vector<bool> dp(sum / 2 + 1,false);dp[0] = true;for(int num: nums){for(int i=sum/2;i>=0;i--){if(i-num>=0 && dp[i-num]){dp[i] = true;}}}return dp[sum/2];
}

组合总和 Ⅳ的图:

这题和组合总和 Ⅳ的区别在于,组合总和的数字可以反复使用,并且次序不同结果也不同,所以相当于从底层向上层,所有分支的和,所以必须形如代码1,即数组中的元素可重复使用,nums放在内循环,target在外循环。且内循环正序,是完全背包。 而本题的数字不能反复使用,所以相当于从上层到底层选一条路径,通了即可,所以必须形如代码2,即数组中的元素不可重复使用,nums放在外循环,target在内循环,且内循环倒序,是0-1背包。

代码1(完全背包):

for i in range(1, target+1):for num in nums:

代码2(0-1背包):

for num in nums:for i in range(target, nums-1, -1):

这里能体会循环有倾向性,外层循环的倾向性更明显

leetcode算法题--分割等和子集★相关推荐

  1. LeetCode算法题整理(200题左右)

    目录 前言 一.树(17) 1.1.后序遍历 1.2.层次遍历 1.3.中序 1.4.前序 二.回溯(20) 2.1.普通回溯 2.2.线性回溯:组合.排列.子集.分割 2.3.矩阵回溯 三.二分查找 ...

  2. LeetCode算法题-Nth Digit(Java实现)

    这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...

  3. LeetCode算法题-Reverse Linked List(Java实现)

    这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...

  4. LeetCode算法题-Convert a Number to Hexadecimal(Java实现)

    这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...

  5. leetcode算法题--零钱兑换

    原题链接:https://leetcode-cn.com/problems/coin-change/ 相关题目:leetcode算法题–完全平方数★ 动态规划 dp[i] i从0到amount,dp[ ...

  6. leetcode算法题-- 买卖股票的最佳时机

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 这类股票题目请见leetcode算法题–最佳买卖股票时机含 ...

  7. leetcode算法题--买卖股票的最佳时机 II

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 这类股票题目请见leetcode算法题–最佳买卖股票 ...

  8. leetcode算法题--买卖股票的最佳时机含手续费

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 这类股票题目请见 ...

  9. leetcode算法题--完全平方数★

    原题链接:https://leetcode-cn.com/problems/perfect-squares/ 相关题目:leetcode算法题–零钱兑换 1.回溯法 就是暴力法,套路就是递归,但是有很 ...

最新文章

  1. Linux内核网络栈1.2.13-tcp.c概述
  2. 四年磨一剑,机械出身的我是如何拿到蚂蚁金服 Offer 的!
  3. php 将内容中的图片的域名,php给编辑器中的图片地址添加域名
  4. WM_CHAR、WM_KEYDOWN和WM_SYSKEYDOWN消息
  5. No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration
  6. C语言实现ternary search三分查找算法(附完整源码)
  7. 【Python②】python之首秀
  8. druid-StatViewServlet配置
  9. Git -- 搭建git服务器
  10. 机器人 考研 计算机专业,机器人工程考研方向
  11. 2012Android开发热门资料110
  12. Scale-up and Scale-out
  13. 大学英语四级考试大纲
  14. 神经网络求解二阶常微分方程
  15. 阿里云OCR:(二)银行卡号识别
  16. Gephi 网络可视化——调整节点大小
  17. 巴比特 | 元宇宙每日必读:股价暴跌,强敌环伺,扎克伯格将如何续写元宇宙故事?...
  18. Sentinel流量防控卫兵
  19. 宽带连不上网原因及解决办法
  20. Bootstrap-用ICheck插件给CheckBox换新装

热门文章

  1. python错误-python异常与错误区别
  2. python读取csv文件的方法-python读取csv文件指定行的2种方法详解
  3. ipad编程软件python-iPad可用的软件编程软件有吗?
  4. python绘制3d图形-万万没想到,Python 竟能绘制出如此酷炫的三维图
  5. 小学生python编程教程入门-围观~山东省的小学生Python编程入门都学的什么?
  6. python 数据分析学什么-入门数据分析,我应该学习什么编程语言
  7. python真的超过java了吗-Python 的开发效率真的比 Java高吗?
  8. python json.loads()中文问题-解决Python下json.loads()中文字符出错的问题
  9. python填写excel-Python玩转Excel的读写改实例
  10. 服务提供者框架(Service Provider Framework)