Java实现 LeetCode 416 分割等和子集
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 分割等和子集相关推荐
- 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. 分割等和子集 -------------------------------------------- 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和 ...
- [动态规划] leetcode 416. 分割等和子集
问题描述: 分割等和子集:给你一个只包含正整数的非空数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 例子:输入nums = {1, 5, 11 , 5 ...
- leetcode 416. 分割等和子集
分割等和子集题解集合 DFS 记忆化搜索 记忆化搜索的另一种写法 动态规划 「滚动数组」解法 「一维空间优化」解法 DFS 思路 题意就是:给你一个非空数组,和为sum,你能否找到一个子序列,和为su ...
- LeetCode 416. 分割等和子集(动态规划)
1. 题目 给定一个只包含正整数的非空数组. 是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [ ...
- LeetCode 416. 分割等和子集(动态规划)(0-1背包)
题目描述 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, ...
- LeetCode #416 分割等和子集
题目: 给你一个 只包含正整数 的 非空 数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 示例 1: 输入:nums = [1,5,11,5] 输出:true ...
- LeetCode | 416.分割等和子集
给你一个 只包含正整数 的 非空 数组 nums .请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 示例 1:输入:nums = [1,5,11,5] 输出:true 解释:数组 ...
最新文章
- pandas dataframe调整列的位置
- java查询数据库的方式_Java连接各种数据库方式速查表
- 关于PreparedStatement.addBatch()方法 (转)
- 哲学上的终极问题:你在追求什么?
- php-redis中文参考手册_zset
- 2017蓝桥杯B组:最长公共子序列(动态规划详解(配图))
- 使用Strophe连接xmpp,轻松构建web即时聊天工具
- python将json转化为数组_将JSON转换为数组?
- 实验室计算机主机关,计算机综合实验室管理办法
- 第15章-4~6 装配体静力学分析经验技巧总结篇 (工作原理的简化、约束、预紧力、载荷、后处理)高效修改接触对、suppress(抑制)、多工位(多步计算)的螺栓预紧力设置
- 阿里旗下的咸鱼是什么盈利模式?很多人真的不知道!
- 基2FFT的matlab实现
- iPhone在线音乐盒,代码开源
- 美国TSCA 法案管控产品中的几种PBT化学品
- 大型门户网站的RBAC用户权限管理设计
- 抽中H1B回国有风险? 还没消息代表没中签? H1B审理期间常见问题解答
- 当谈论工程师文化时我们在谈些什么
- 【合集】Jerry Wang 2018~2021 四年期间的 SAP 技术文章合集
- android十二时辰源码,云指程序猿十二时辰
- vs code设置保存时自动将CRLF 转换成 LF