Backtracking•Pattern: Backtracking•Medium

Permutations of a list (with duplicates)

Problem Intuition & Objective

Generate all unique permutations of a list that may contain duplicates.

Time ComplexityO(n! × n)
Optimal
Space ComplexityO(n)
Memory Bounds
Optimal Algorithmic Approach

Backtracking with sort + duplicate-skip condition.

Core Invariants & Edge Cases

  • Sort, then use backtracking with a used[] boolean array
  • Skip if nums[i] == nums[i-1] and !used[i-1] (avoid duplicate branches)
  • Swap-based approach (without sorting) for no duplicates
Previous ProblemCombination sum — unique combinations summing to targetNext Problem Letter combinations of a phone number

System Design & Architecture Roadmap

Coding interviews are only 50% of the bar. Master High-Level Design, distributed systems, and Object-Oriented LLD.