Partition Equal Subset Sum
Partition Equal Subset Sum:
Problem Description:
Given a non-empty array nums 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.
Example 1:
Input: nums = [1,5,11,5]
Output: true
Explanation: The array can be partitioned as [1, 5, 5] and [11].
Example 2:
Input: nums = [1,2,3,5]
Output: false
Explanation: The array cannot be partitioned into equal sum subsets.
Constraints:
1 <= nums.length <= 200
1 <= nums[i] <= 100
Solution:
class Solution {
public boolean canPartition(int[] nums) {
int totalsum = 0, subsetsum = 0;
for(int num: nums)
totalsum+=num;
if(totalsum%2 == 0)
subsetsum = totalsum/2;
else return false;
int n = nums.length;
boolean[][] k = new boolean[n+1][subsetsum+1];
k[0][0] = true;
for(int i=1; i<=n;i++)
{
k[i][0] = true;
}
for(int j=1; j<=subsetsum;j++)
{
k[0][j] = false;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=subsetsum; j++)
{
if(j<nums[i-1])
k[i][j] = k[i-1][j];
else
{
k[i][j] = ( k[i-1][j] || k[i-1][j-nums[i-1]]);
}
}
}
return k[n][subsetsum];
}
}
Output:
Input: nums = [1,5,11,5]
Output: true
Reference: 👉 Partition Equal Subset Sum
Happy Coding 💻 :-)
Comments
Post a Comment