LeetCode 416. 分割等和子集(动态规划)(0-1背包)
题目描述
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
注意:
每个数组中的元素不会超过 100
数组的大小不会超过 200
示例 1:
输入: [1, 5, 11, 5]
输出: true
解释: 数组可以分割成 [1, 5, 5] 和 [11].
示例 2:
输入: [1, 2, 3, 5]
输出: false
解释: 数组不能分割成两个元素和相等的子集.
思路
详见链接
代码
class Solution:def canPartition(self,nums) -> bool:n = len(nums)target = sum(nums)if (target%2 != 0):return Falsetarget //= 2dp = [[False]*(target + 1) for _ in range(n)]dp[0][0] = Truefor i in range(1,target+1):if(nums[0] == i):dp[0][i] = Truebreakfor i in range(1,n):for j in range(target+1):if (j >= nums[i]):dp[i][j] = dp[i-1][j] or (dp[i-1][j-nums[i]])else:dp[i][j] = dp[i-1][j]return dp[-1][-1]
test = Solution()
test.canPartition([1, 5, 11, 5])
效果
LeetCode 416. 分割等和子集(动态规划)(0-1背包)相关推荐
- LeetCode 416 分割等和子集
LeetCode 416 分割等和子集 题目链接 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会 ...
- LeetCode 416. 分割等和子集 【c++/java详细题解】
来自专栏<LeetCode高频面试题> 欢迎订阅 目录 1.题目 2.思路 3.二维c++代码 4.二维java代码 5.一维优化 6.一维c++代码 7.一维java代码 1.题目 给你 ...
- leetcode - 416. 分割等和子集
416. 分割等和子集 -------------------------------------------- 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和 ...
- Java实现 LeetCode 416 分割等和子集
416. 分割等和子集 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: ...
- [动态规划] leetcode 416. 分割等和子集
问题描述: 分割等和子集:给你一个只包含正整数的非空数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 例子:输入nums = {1, 5, 11 , 5 ...
- leetcode 416. 分割等和子集
分割等和子集题解集合 DFS 记忆化搜索 记忆化搜索的另一种写法 动态规划 「滚动数组」解法 「一维空间优化」解法 DFS 思路 题意就是:给你一个非空数组,和为sum,你能否找到一个子序列,和为su ...
- LeetCode 416. 分割等和子集(动态规划)
1. 题目 给定一个只包含正整数的非空数组. 是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [ ...
- 动态规划:leetcode 416 分割等和子集(背包问题应用)
题目链接:力扣 定义dp数组:dp[i][j]表示能否从nums下标0~j任意选择数,使它们之和为j,dp数组为bool类型 状态转移方程:下标为i的数不选,dp[i][j]等价于dp[i-1][j] ...
- LeetCode #416 分割等和子集
题目: 给你一个 只包含正整数 的 非空 数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 示例 1: 输入:nums = [1,5,11,5] 输出:true ...
最新文章
- git server安装
- selenium自动加载Flash
- 2021牛客暑期多校训练营3 B Black and white 最小生成树 + 思维
- Spring Security with Spring Boot 2.0:密码编码器
- Linux 命令行通配符及转义符的实现
- linux c语言 udp 接收和发送数据用同一个端口_网络编程基础入门及TCP,UDP
- nginx简介--理解nginx配置/模块/openresty
- nginx 安装_安装Nginx的几种方式
- [Java 基础]控制语句
- 使用 Shell 脚本实现安装进度指示器
- PHP 字符串匹配算法 Sunday算法
- 《一切皆是映射:代码的本质》哈希算法 (Hash)
- Github上的优秀安卓项目
- iOS7以上: 实现如“日历”的 NavigationBar
- h264 pps sps详解
- 复化科特斯公式matlab_牛顿科特斯公式要点分析.ppt
- 【Matlab】根据excel画折线图和柱状图
- 熬秃了头整理的网络工程师学习笔记和心得:传闻中的OSPF到底是什么
- 红米笔记本linux系统版本,一招让你的手机拥有三系统甚至四系统: WINDOWS+安卓+Linux...
- SpringBoot继承阿里云短信
热门文章
- 论文趣读:人工智能里程碑?回顾2015年登上Nature的DQN(全文翻译+批注)
- 易语言远程查询oracle数据库连接,易语言如何连接远程服务器上的数据库,并读取数据...
- 前端框架——Jquery——基础篇7__工具函数(Utils)
- 求生之路2联机服务器没有响应,求生之路2联机卡,为什么求生之路2联机进不去...
- Linux安装教程4,pfSense-2.4.4安装教程
- StarUML 系列,静态图与动态图,用例图,类图【ps:熟悉一下starUML】
- 玩游戏用什么轴的机械键盘好_机械键盘选什么轴?全方面分析各轴手感和区别...
- EDA实验课课程笔记(六)——NC-verilog的介绍与使用(二)
- 2010年度十大杰出IT博客大赛奖品展示
- 安装VS2008关于解决磁盘已满问题方案.