题解 | 全排列
全排列
https://www.nowcoder.com/practice/1d1fe38275da44b5848add89f9e223b1
遍历1-n 以每个数作为排列的开始,dfs递归回溯向临时数组中加入新元素直到临时数组长度等于n,将其加入结果集中。
将结果集按字典序排序输出每一行。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
while(line = await readline()){
const n = Number(line);
const result = [];
const dfs = function(seq) {
if (seq.length === n) {
result.push(seq.join(' '));
return;
}
for (let i = 1; i <= n; i++) {
if (seq.includes(i)) continue;
seq.push(i);
dfs(seq);
seq.pop();
}
};
for (let i = 1; i <= n; i++) {
dfs([i]);
}
result.sort();
result.forEach(val => console.log(val));
}
}()


