You are given an array matchsticks where matchsticks[i] is the length of the i-th matchstick. Use every matchstick exactly once to form a square (you may not break any).
Return true if you can form a square, otherwise false.
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.
You are given an array matchsticks where matchsticks[i] is the length of the i-th matchstick. Use every matchstick exactly once to form a square (you may not break any).
Return true if you can form a square, otherwise false.
A medium backtracking problem, graded against 9 test cases (7 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 into four buckets. Each side target is `total / 4`. Sort descending and try to place each matchstick into a side that still has room. Skipping a side whose running length equals the previous side avoids redundant branches.
Time: O(4ⁿ) worst case, heavily pruned. 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.