Given an integer array nums and an integer k, return true if it is possible to divide all elements into k non-empty subsets whose sums are all equal.
We use analytics and advertising cookies to understand how the site is used and whether our ads on Facebook and Instagram work. They are set only if you accept. See our Privacy Policy for details.
Given an integer array nums and an integer k, return true if it is possible to divide all elements into k non-empty subsets whose sums are all equal.
A hard backtracking problem, graded against 10 test cases (8 of them hidden).
Systematic exploration of all candidates, abandoning partial ones that cannot work.
Reach for it when you see: "All permutations/combinations/subsets", or constraint puzzles like N-Queens and Sudoku.
More Backtracking problems →Backtracking with pruning. If `total % k !== 0` or the largest element exceeds the target, it's impossible. Otherwise fill buckets to `target` one element at a time; when a bucket reaches the target, start the next. Sorting descending and trying larger elements first prunes aggressively.
Time: O(k·2ⁿ) worst case. Space: O(n).
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.