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
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;
}