题解 | #被围绕的区域#

被围绕的区域

https://www.nowcoder.com/practice/3946670643fe4ec2aedcc2be45aed1a9

/**

 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

 *

 * 

 * @param board char字符型二维数组 

 * @return char字符型二维数组

 */

function surroundedAreaboard ) {

    let x = board.length;

    let y = board[0].length;

    const dfs = (ij=> {

        if (i >= x || j >= y || i < 0 || y < 0return;

        if (board[i][j] !== 'O'return; // 不能写成 board[i][j] === 'X' 会报死循环        

board[i][j] = 'A';

        dfs(i + 1j);

        dfs(i - 1j);

        dfs(ij + 1);

        dfs(ij - 1);

    };

    for (let i = 0i < xi++) {

        dfs(0i);

        dfs(x-1i);

    }

    for (let j = 0j < y - 1j++) {

        dfs(j0);

        dfs(jy-1);

    }

    for (let m = 0m < xm++) {

        for (let n = 0n < yn++){

            if (board[m][n] === 'A') {

                board[m][n] = 'O'

            } else {

                board[m][n] = 'X'

            }

        }

    }

    return board;

}

module.exports = {

    surroundedArea : surroundedArea

};

全部评论

相关推荐

昨天 20:49
武汉大学 Java
点赞 评论 收藏
分享
10-31 22:23
门头沟学院 Java
天然不是卷王:太好了 佬的金九银十结束,等offer吐出来,我的金11银12就要开始了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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