leetcode算法题--分割等和子集★
原题链接: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算法题--分割等和子集★相关推荐
- LeetCode算法题整理(200题左右)
目录 前言 一.树(17) 1.1.后序遍历 1.2.层次遍历 1.3.中序 1.4.前序 二.回溯(20) 2.1.普通回溯 2.2.线性回溯:组合.排列.子集.分割 2.3.矩阵回溯 三.二分查找 ...
- LeetCode算法题-Nth Digit(Java实现)
这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...
- LeetCode算法题-Reverse Linked List(Java实现)
这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...
- LeetCode算法题-Convert a Number to Hexadecimal(Java实现)
这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...
- leetcode算法题--零钱兑换
原题链接:https://leetcode-cn.com/problems/coin-change/ 相关题目:leetcode算法题–完全平方数★ 动态规划 dp[i] i从0到amount,dp[ ...
- leetcode算法题-- 买卖股票的最佳时机
原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 这类股票题目请见leetcode算法题–最佳买卖股票时机含 ...
- leetcode算法题--买卖股票的最佳时机 II
原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 这类股票题目请见leetcode算法题–最佳买卖股票 ...
- leetcode算法题--买卖股票的最佳时机含手续费
原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 这类股票题目请见 ...
- leetcode算法题--完全平方数★
原题链接:https://leetcode-cn.com/problems/perfect-squares/ 相关题目:leetcode算法题–零钱兑换 1.回溯法 就是暴力法,套路就是递归,但是有很 ...
最新文章
- Linux内核网络栈1.2.13-tcp.c概述
- 四年磨一剑,机械出身的我是如何拿到蚂蚁金服 Offer 的!
- php 将内容中的图片的域名,php给编辑器中的图片地址添加域名
- WM_CHAR、WM_KEYDOWN和WM_SYSKEYDOWN消息
- No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration
- C语言实现ternary search三分查找算法(附完整源码)
- 【Python②】python之首秀
- druid-StatViewServlet配置
- Git -- 搭建git服务器
- 机器人 考研 计算机专业,机器人工程考研方向
- 2012Android开发热门资料110
- Scale-up and Scale-out
- 大学英语四级考试大纲
- 神经网络求解二阶常微分方程
- 阿里云OCR:(二)银行卡号识别
- Gephi 网络可视化——调整节点大小
- 巴比特 | 元宇宙每日必读:股价暴跌,强敌环伺,扎克伯格将如何续写元宇宙故事?...
- Sentinel流量防控卫兵
- 宽带连不上网原因及解决办法
- Bootstrap-用ICheck插件给CheckBox换新装
热门文章
- python错误-python异常与错误区别
- python读取csv文件的方法-python读取csv文件指定行的2种方法详解
- ipad编程软件python-iPad可用的软件编程软件有吗?
- python绘制3d图形-万万没想到,Python 竟能绘制出如此酷炫的三维图
- 小学生python编程教程入门-围观~山东省的小学生Python编程入门都学的什么?
- python 数据分析学什么-入门数据分析,我应该学习什么编程语言
- python真的超过java了吗-Python 的开发效率真的比 Java高吗?
- python json.loads()中文问题-解决Python下json.loads()中文字符出错的问题
- python填写excel-Python玩转Excel的读写改实例
- 服务提供者框架(Service Provider Framework)