πDay 15. Partition Equal Subset Sum π§
The problem can be found at the following link: Question Link
π‘ Problem Description:
Given an array arr[], determine if it can be partitioned into two subsets such that the sum of elements in both parts is the same.
Each element must be in exactly one subset.
π Example Walkthrough:
Example 1:
Input:
arr = [1, 5, 11, 5]Output:
TrueExplanation:
The array can be partitioned into [1, 5, 5] and [11], both having the sum 11.
Example 2:
Input:
Output:
Explanation:
There is no way to split the array into two subsets with equal sum.
Constraints:
$(1 \leq arr.size \leq 100)$
$(1 \leq arr[i] \leq 200)$
π― My Approach:
Optimized 1D Dynamic Programming
Algorithm Steps:
Calculate the total sum of the array. If it's odd, return false (cannot be evenly split).
Use a DP table (
dp[j]), wheredp[j]tells if we can form sumj.Initialize
dp[0] = true, since a sum of 0 is always possible.Iterate through each element in the array:
Update
dp[j] = dp[j] OR dp[j - num]forj = targetdown tonum.
If
dp[target]is true, we can partition the array into two subsets with equal sum.
π Time and Auxiliary Space Complexity
Expected Time Complexity: $O(N \times sum)$, as we iterate over the elements and process sums up to
sum/2.Expected Auxiliary Space Complexity: $O(sum)$, as we use a 1D DP array of size
sum/2 + 1.
π Solution Code
Code (C++)
Code (Java)
Code (Python)
π― Contribution and Support:
For discussions, questions, or doubts related to this solution, feel free to connect on LinkedIn: Any Questions. Letβs make this learning journey more collaborative!
β If you find this helpful, please give this repository a star! β
πVisitor Count
Last updated