[Leetcode] #416 Partition Equal Subset Sum
来源:互联网 发布:mac迅雷怎么看片 编辑:程序博客网 时间:2024/06/05 07:44
Discription:
Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal.
Note:
- Each of the array element will not exceed 100.
- The array size will not exceed 200.
Example 1:
Input: [1, 5, 11, 5]Output: trueExplanation: The array can be partitioned as [1, 5, 5] and [11].
Example 2:
Input: [1, 2, 3, 5]Output: falseExplanation: The array cannot be partitioned into equal sum subsets.
Solution:
01背包问题。
bool canPartition(vector<int>& nums) {int sum = 0;int n = nums.size();for (int i = 0; i < nums.size(); i++){sum += nums[i];}if (sum % 2 == 1)return false;sum = sum / 2;vector<vector<int>> dp(n + 1, vector<int>(sum + 1, 0));for (int i = 1; i <= n; i++){for (int j = 1; j <= sum; j++){if (j >= nums[i - 1]){dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - nums[i - 1]] + nums[i - 1]);}else{dp[i][j] = dp[i - 1][j];}}}return dp[n][sum] == sum ? true : false;}
bool canPartition(vector<int>& nums) { //利用滚动数组实现int sum = 0;int n = nums.size();for (int i = 0; i < nums.size(); i++){sum += nums[i];}if (sum % 2 == 1)return false;sum = sum / 2;vector<int> dp(sum + 1, 0);for (int i = 1; i <= n; i++){for (int j = sum; j >= nums[i-1]; j--)dp[j] = max(dp[j], dp[j - nums[i - 1]] + nums[i - 1]);}return dp[sum] == sum ? true : false;}
0 0
- leetCode No.416 Partition Equal Subset Sum
- LeetCode[416] Partition Equal Subset Sum
- LeetCode 416 Partition Equal Subset Sum
- LeetCode #416: Partition Equal Subset Sum
- LeetCode No.416 Partition Equal Subset Sum
- leetcode 416 c++. Partition Equal Subset Sum
- [Leetcode] #416 Partition Equal Subset Sum
- leetcode(416). Partition Equal Subset Sum
- leetcode-416-Partition Equal Subset Sum
- LeetCode: Partition Equal Subset Sum
- LeetCode: Partition Equal Subset Sum
- [LeetCode]Partition Equal Subset Sum
- [LeetCode] Partition Equal Subset Sum
- Leetcode 416 - Partition Equal Subset Sum(dp)
- Leetcode 416 Partition Equal Subset Sum (算法分析week14)
- Leetcode-416. Partition Equal Subset Sum
- LeetCode—416. Partition Equal Subset Sum
- Leetcode 416. Partition Equal Subset Sum
- c语言实现二叉树先序,中序,后序(递归),层次遍历,求叶子节点个数及树的深度,下一篇写非递归的遍历
- 那些H5在Android和IOS上出现的丧心病狂的坑
- c++作业3
- Map集合及其实现类
- 框架对比
- [Leetcode] #416 Partition Equal Subset Sum
- UDP协议学习笔记
- js中二维数组的创建方法
- 本质矩阵
- 纯CSS的导航下拉菜单
- 圣杯布局
- "尚学堂杯"哈尔滨理工大学第七届程序设计竞赛D--Distinct Package Manager
- 使用Maven自动部署Java Web项目到Tomcat问题小记
- OOP