Explain partition equal subset sum.
Skip to solutionKEEP THE
mediumDSA
How do you check if an array can be partitioned into two equal-sum subsets?
109 views
01
Understand the problem
dpsubset
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
If the total is odd, it's impossible. Otherwise it reduces to a subset-sum / 0-1 knapsack: can any subset reach total/2? Use a boolean dp[sum] updated downward per element. O(n × sum) time, O(sum) space.
Solution ready — 2 min read
Classified // press E to declassify
04
Read the code
Subset-sum boolean DP
Run Playgrounddef can_partition(nums):
total = sum(nums)
if total % 2 != 0:
return False
target = total // 2
dp = [False] * (target + 1)
dp[0] = True
for x in nums:
for s in range(target, x - 1, -1): # downward = use each x once
dp[s] = dp[s] or dp[s - x]
return dp[target]
# --- demo ---
print(can_partition([1, 5, 11, 5])) # True ({1,5,5} and {11})
print(can_partition([1, 2, 3, 5])) # False (odd total)05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 97 of 127 decoded in the Data Structures & Algorithms track. One more won't hurt.