Given a collection of numbers nums that might contain duplicates, return all possible unique permutations in lexicographic order.
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 a collection of numbers nums that might contain duplicates, return all possible unique permutations in lexicographic order.
A medium backtracking problem, graded against 6 test cases (4 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 the standard duplicate rule. Sort `nums`. When choosing the next element, skip `nums[i]` if `nums[i] === nums[i-1]` and `nums[i-1]` is currently unused - this fixes a canonical order among equal elements and prevents duplicate permutations. Iterating over sorted input yields lexicographic output.
Time: O(n·n!). 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.