Skip to content

Commit 4f25543

Browse files
committed
partition equal subset sum
1 parent 21d4d29 commit 4f25543

File tree

3 files changed

+104
-34
lines changed

3 files changed

+104
-34
lines changed

.idea/workspace.xml

Lines changed: 68 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,3 +426,4 @@ codes may not be optimized
426426
### Day 21 - Medium
427427

428428
1. [Largest Divisible Subset](https://leetcode.com/problems/largest-divisible-subset/description/)
429+
1. [Partition Equal Subset Sum](https://leetcode.com/problems/partition-equal-subset-sum/description/)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.github.chen0040.leetcode.day21.medium;
2+
3+
4+
import java.util.Arrays;
5+
6+
7+
/**
8+
* Created by xschen on 16/8/2017.
9+
*
10+
* link: https://leetcode.com/problems/partition-equal-subset-sum/description/
11+
*/
12+
public class PartitionEqualSubsetSum {
13+
public class Solution {
14+
public boolean canPartition(int[] nums) {
15+
if(nums.length == 1) return false;
16+
Arrays.sort(nums);
17+
int sum = 0;
18+
for(int i=0; i < nums.length; ++i){
19+
sum+=nums[i];
20+
}
21+
if(sum % 2 == 1) return false;
22+
sum /= 2;
23+
boolean[] dp = new boolean[sum+1];
24+
dp[0] = true;
25+
for(int i = 1; i < nums.length; ++i) {
26+
for(int j=sum; j >= nums[i-1]; j--) {
27+
dp[j] = dp[j] || dp[j - nums[i-1]];
28+
}
29+
}
30+
31+
return dp[sum];
32+
33+
}
34+
}
35+
}

0 commit comments

Comments
 (0)