题解 | 迷宫寻路

迷宫寻路

https://www.nowcoder.com/practice/0c8930e517444d04b426e9703d483ed4

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, m] = line.split(' ').map(Number);
        const mtx = Array(n);
        for (let i = 0; i < n; i++) {
            mtx[i] = (await readline()).split('');
        }

        const visited = Array.from({length: n}, () => Array(m).fill(false));

        const dfs = function(i, j) {
            if (i < 0 || j < 0 || i >= n || j >= m || visited[i][j] || mtx[i][j] === '#') return false;
            if (i === n-1 && j === m-1) {
                return true;
            }

            visited[i][j] = true;

            if (dfs(i-1, j)) return true;
            if (dfs(i+1, j)) return true;
            if (dfs(i, j-1)) return true;
            if (dfs(i, j+1)) return true;

            return false;
        };

        console.log(dfs(0, 0) ? "Yes" : "No");
    }
}()


全部评论

相关推荐

双尔:反手回一个很抱歉,经过慎重考虑,您与我的预期暂不匹配,感谢您的投递
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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