题目描述

给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
注意:
每个数组中的元素不会超过 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背包)相关推荐

  1. LeetCode 416 分割等和子集

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

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

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

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

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

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

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

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

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

  6. leetcode 416. 分割等和子集

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

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

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

  8. 动态规划:leetcode 416 分割等和子集(背包问题应用)

    题目链接:力扣 定义dp数组:dp[i][j]表示能否从nums下标0~j任意选择数,使它们之和为j,dp数组为bool类型 状态转移方程:下标为i的数不选,dp[i][j]等价于dp[i-1][j] ...

  9. LeetCode #416 分割等和子集

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

最新文章

  1. git server安装
  2. selenium自动加载Flash
  3. 2021牛客暑期多校训练营3 B Black and white 最小生成树 + 思维
  4. Spring Security with Spring Boot 2.0:密码编码器
  5. Linux 命令行通配符及转义符的实现
  6. linux c语言 udp 接收和发送数据用同一个端口_网络编程基础入门及TCP,UDP
  7. nginx简介--理解nginx配置/模块/openresty
  8. nginx 安装_安装Nginx的几种方式
  9. [Java 基础]控制语句
  10. 使用 Shell 脚本实现安装进度指示器
  11. PHP 字符串匹配算法 Sunday算法
  12. 《一切皆是映射:代码的本质》哈希算法 (Hash)
  13. Github上的优秀安卓项目
  14. iOS7以上: 实现如“日历”的 NavigationBar
  15. h264 pps sps详解
  16. 复化科特斯公式matlab_牛顿科特斯公式要点分析.ppt
  17. 【Matlab】根据excel画折线图和柱状图
  18. 熬秃了头整理的网络工程师学习笔记和心得:传闻中的OSPF到底是什么
  19. 红米笔记本linux系统版本,一招让你的手机拥有三系统甚至四系统: WINDOWS+安卓+Linux...
  20. SpringBoot继承阿里云短信

热门文章

  1. 论文趣读:人工智能里程碑?回顾2015年登上Nature的DQN(全文翻译+批注)
  2. 易语言远程查询oracle数据库连接,易语言如何连接远程服务器上的数据库,并读取数据...
  3. 前端框架——Jquery——基础篇7__工具函数(Utils)
  4. 求生之路2联机服务器没有响应,求生之路2联机卡,为什么求生之路2联机进不去...
  5. Linux安装教程4,pfSense-2.4.4安装教程
  6. StarUML 系列,静态图与动态图,用例图,类图【ps:熟悉一下starUML】
  7. 玩游戏用什么轴的机械键盘好_机械键盘选什么轴?全方面分析各轴手感和区别...
  8. EDA实验课课程笔记(六)——NC-verilog的介绍与使用(二)
  9. 2010年度十大杰出IT博客大赛奖品展示
  10. 安装VS2008关于解决磁盘已满问题方案.