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

Popular posts from this blog

Valid Username Regular Expression

Rotate String in Right Direction in java

Sum of Elements of Lower Triangular Matrix