Leetcode: Partition Equal Subset Sum
Posted neverlandly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode: Partition Equal Subset Sum相关的知识,希望对你有一定的参考价值。
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.
Backpack problem: dp[i][j] means if the first i elements can sum up to value j
dp[i][j] = dp[i-1][j] || (j>=nums[i-1] && dp[i-1][j-nums[i-1]])
the result is if the half sum of the array can be summed up by elements in the array
1 public class Solution { 2 public boolean canPartition(int[] nums) { 3 if (nums.length == 0) return true; 4 int volume = 0; 5 for (int num : nums) { 6 volume += num; 7 } 8 if (volume % 2 == 1) return false; 9 volume /= 2; 10 boolean[] dp = new boolean[volume+1]; 11 dp[0] = true; 12 for (int i=1; i<=nums.length; i++) { 13 for (int j=volume; j>=0; j--) { 14 dp[j] = dp[j] || (j>=nums[i-1] && dp[j-nums[i-1]]); 15 } 16 } 17 return dp[volume]; 18 } 19 }
以上是关于Leetcode: Partition Equal Subset Sum的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode: Partition Equal Subset Sum
[leetcode-663-Equal Tree Partition]
[动态规划] leetcode 416 Partition Equal Subset Sum
[LeetCode] 416 Partition Equal Subset Sum