题解 | #火车进站#
火车进站
https://www.nowcoder.com/practice/97ba57c35e9f4749826dc3befaeae109
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 const inputs = []; while ((line = await readline())) { inputs.push(line.split(" ")); } let arr = inputs[1]; const res = []; const len = arr.length; const loop = (innerList, waitingList, resList) => { if (resList.length == len) { res.push(resList); return; } let temp = [...waitingList]; let cur = temp.shift(); let resTemp = [...resList]; // console.log([...innerList, cur], temp, resList); // console.log(innerTemp, waitingList, resTemp); if (waitingList.length) { // 进 loop([...innerList, cur], temp, resList); } if (innerList.length) { let innerTemp = [...innerList]; let outCur = innerTemp.pop(); resTemp.push(outCur); // 出 loop(innerTemp, waitingList, resTemp); } }; loop([], arr, []); res.sort().forEach(i=>{ console.log(i.join(" ")) }) })();