416. 分割等和子集

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

注意:

每个数组中的元素不会超过 100
数组的大小不会超过 200
示例 1:

输入: [1, 5, 11, 5]

输出: true

解释: 数组可以分割成 [1, 5, 5] 和 [11].

示例 2:

输入: [1, 2, 3, 5]

输出: false

解释: 数组不能分割成两个元素和相等的子集.

class Solution {public boolean canPartition(int[] nums) {//动态规划,背包问题,从nums中选择一部分数字组合,填满容量为sum/2的背包 int n=nums.length;if(n == 0){return false;}//确定背包c的大小int sum = 0;for(int i=0; i<n; i++){sum+=nums[i];}int c = sum/2; //两个相等的整数的和一定为偶数if(sum%2==1){return false;}//动态规划//明确状态:dp[m][n] 考虑是否将第m个数字放入容量为n的背包 boolean[][] dp = new  boolean[n][c+1];//状态初始化for(int i=0; i<=c; i++){if(i!=nums[0]){dp[0][i] = false;}else{dp[0][i] = true;}}//状态转移方程:dp[m][n] = dp[m-1][n] || dp[m-1][n-nums[m]]for(int i=1; i<n; i++){for(int j=0; j<=c; j++){dp[i][j] = dp[i-1][j];if(nums[i]<=j){dp[i][j] = dp[i-1][j] || dp[i-1][j-nums[i]];                    }}}return dp[n-1][c];       }
}

Java实现 LeetCode 416 分割等和子集相关推荐

  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. [动态规划] leetcode 416. 分割等和子集

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

  5. leetcode 416. 分割等和子集

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

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

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

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

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

  8. LeetCode #416 分割等和子集

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

  9. LeetCode | 416.分割等和子集

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

最新文章

  1. pandas dataframe调整列的位置
  2. java查询数据库的方式_Java连接各种数据库方式速查表
  3. 关于PreparedStatement.addBatch()方法 (转)
  4. 哲学上的终极问题:你在追求什么?
  5. php-redis中文参考手册_zset
  6. 2017蓝桥杯B组:最长公共子序列(动态规划详解(配图))
  7. 使用Strophe连接xmpp,轻松构建web即时聊天工具
  8. python将json转化为数组_将JSON转换为数组?
  9. 实验室计算机主机关,计算机综合实验室管理办法
  10. 第15章-4~6 装配体静力学分析经验技巧总结篇 (工作原理的简化、约束、预紧力、载荷、后处理)高效修改接触对、suppress(抑制)、多工位(多步计算)的螺栓预紧力设置
  11. 阿里旗下的咸鱼是什么盈利模式?很多人真的不知道!
  12. 基2FFT的matlab实现
  13. iPhone在线音乐盒,代码开源
  14. 美国TSCA 法案管控产品中的几种PBT化学品
  15. 大型门户网站的RBAC用户权限管理设计
  16. 抽中H1B回国有风险? 还没消息代表没中签? H1B审理期间常见问题解答
  17. 当谈论工程师文化时我们在谈些什么
  18. 【合集】Jerry Wang 2018~2021 四年期间的 SAP 技术文章合集
  19. android十二时辰源码,云指程序猿十二时辰
  20. vs code设置保存时自动将CRLF 转换成 LF

热门文章

  1. 使用 Arya 在线 Markdown 编辑器
  2. VC++编译lua库 无法解析lua符号问题
  3. Prism 模板包,快捷创建Prism程序
  4. 毕业设计-基于SpringBoot小区物业管理系统
  5. 9月16日计算机视觉基础学习笔记——认识机器视觉
  6. Gitlab配置Gitlab-Runner实现简单的CI/CD
  7. 福利来了,企业信息化应用云服务免费自助开通
  8. 【SF08】:经典KD指标另类使用有奇效,股指商品双版本策略;
  9. mysql支持clr_什么是 CLR ?
  10. 免费制作证件照、一键换背景底色,不会PS也能轻松搞定各种证件照!