leetcode--- Partition Equal Subset Sum---动规
来源:互联网 发布:投影仪测试软件 编辑:程序博客网 时间:2024/05/21 03:54
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: true
Explanation: The array can be partitioned as [1, 5, 5] and [11].
Example 2:
Input: [1, 2, 3, 5]
Output: false
Explanation: The array cannot be partitioned into equal sum subsets.
class Solution{public: bool dp[10000]; bool vis[200]; bool canPartition(vector<int>& nums) { int s = 0; for(int i=0; i<nums.size(); i++) s += nums[i]; if(s % 2 != 0) return false; memset(dp, false, sizeof(dp)); dp[0] = true; for(int j=0; j<nums.size(); j++) { for(int i=s/2; i>=nums[j]; i--) dp[i] = dp[i] || dp[i-nums[j]]; } return dp[s/2]; }};
回溯—超时
class Solution{public: bool vis[200]; bool dfs(vector<int>&nums, int dep, int tmp, int s) { if(tmp == s) { cout << tmp << " "; return true; } else { for(int i=dep; i<nums.size(); i++) { if(tmp + nums[i] <= s) { if(dfs(nums, i+1, tmp + nums[i], s)) return true; } } return false; } } bool canPartition(vector<int>& nums) { int s = 0; for(int i=0; i<nums.size(); i++) s += nums[i]; if(s % 2 != 0) return false; memset(vis, false, sizeof(vis)); int tmp = 0; int dep = 0; return dfs(nums, dep, tmp, s/2); }};
0 0
- leetcode--- 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
- 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 416. Partition Equal Subset Sum
- 【leetcode】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. Partition Equal Subset Sum
- 【LeetCode】416. Partition Equal Subset Sum
- Linux下C库学习
- day13-事务&mvc&反射补充
- 数组转置
- linux动态库和静态库的区别
- Linux进程描述符task_struct结构体
- leetcode--- Partition Equal Subset Sum---动规
- Ueditor显示问题:内容将html标签也显示出来了
- webpack之傻瓜式教程
- [机器学习](六)cs229之EM算法
- 【Swift】14.0扩展
- 24点游戏是经典的纸牌益智游戏(Android版)
- c/c++
- day14-jdbc案例(简单的curd&分页)
- 平衡二叉树