题解 | #火车进站#

火车进站

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(" "))
    })
})();

全部评论

相关推荐

07-17 11:27
门头沟学院 Java
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务