LeetCode—— Partition Equal Subset Sum
2017-09-13 19:30
459 查看
Question
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.
Solution
动态规划,这其实是一个0-1背包问题,dp[i][j],i表示用第0~i个数是否可以组成值为j,dp[0][0] = true.Code
class Solution { public: bool canPartition(vector<int>& nums) { int total = accumulate(nums.begin(), nums.end(), 0), target = total >> 1; vector<vector<bool> > dp(nums.size() + 1, vector<bool>(target + 1, false)); if (total & 1) return false; for (int j = 0; j <= nums.size(); j++) { dp[j][0] = true; } for (int i = 1; i <= target; i++) dp[0][i] = false; for (int i = 1; i <= nums.size(); i++) { for (int j = 1; j <= target; j++) { dp[i][j] = dp[i - 1][j]; if (j >= nums[i - 1]) dp[i][j] = dp[i][j] || dp[i - 1][j - nums[i - 1]]; } } return dp[nums.size()][target]; } };
相关文章推荐
- LeetCode Partition Equal Subset Sum
- 每周LeetCode算法题(五):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] Partition Equal Subset Sum
- LeetCode: Partition Equal Subset Sum
- LeetCode - 416 - Partition Equal Subset Sum
- [LeetCode]Partition Equal Subset Sum
- LeetCode No.416 Partition Equal Subset Sum
- [LeetCode] Partition Equal Subset Sum划分数组形成两个和相等的子集
- [LeetCode416]Partition Equal Subset Sum
- 【Leetcode】416-Partition Equal Subset Sum -- javascript解法 01背包问题
- [LeetCode]Partition Equal Subset Sum(Java)
- leetCode No.416 Partition Equal Subset Sum
- [LeetCode] Partition Equal Subset Sum 相同子集和分割
- [Leetcode] #416 Partition Equal Subset Sum
- Partition Equal Subset Sum - leetcode 416号题目个人题解
- leetcode(416). Partition Equal Subset Sum
- Leetcode: Partition Equal Subset Sum