nums = [1,2,3]expected [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,2,1],[3,1,2]]

Loading 3D view…

Start from the input order

step 1 / 245

Solution

TypeScript · line 1
function permutations(nums: number[]): number[][] {
  const a = [...nums];
  const results: number[][] = [];
  function backtrack(k: number): void {
    if (k === a.length) {
      results.push([...a]);
      return;
    }
    for (let i = k; i < a.length; i++) {
      [a[k], a[i]] = [a[i], a[k]];
      backtrack(k + 1);
      [a[k], a[i]] = [a[i], a[k]];
    }
  }
  backtrack(0);
  return results;
}