leetcode 130被围绕的区域

思路

一个区域不能被围绕是这个区域有部分在边界

可以循环边界,找边界的区域(利用深搜),这些都不能被围绕,其余的,能被围绕,应该从"O"变为”X“

代码

static boolean[][] hasGo;//记录是否走过
    static int[][] to = {{0,1},{1,0},{-1,0},{0,-1}};
    public void solve(char[][] board) {
        hasGo = new boolean[board.length][board[0].length];
        for (int i = 0;i<board.length;i++){
            for (int j = 0; j<board[0].length;j++){
                //边界
                if (i==0||j==0|| i == board.length-1||j == board[0].length-1){//找边界
                   if (hasGo[i][j] == false && board[i][j] == 'O'){//没被走过且是可以走的
                       dfs(i,j,board);
                   }
                }
            }
        }
        for (int i = 0; i < board.length; i++) {
            for (int j = 0; j < board[0].length; j++) {
                if (board[i][j] == 'O' && hasGo[i][j] == false){//是0,且从边界走不到
                    board[i][j] = 'X';
                }
            }
        }
    }

    private void dfs(int i, int j, char[][] board) {
        hasGo[i][j] = true;// 这个点走过了
        for (int k = 0;k<4;k++){
            int ii = i + to[k][0];
            int jj = j + to[k][1];
            if (ii>=0 && ii<board.length&&jj>=0&&jj<board[0].length){
                if (hasGo[ii][jj] == false&& board[ii][jj] == '0'){
                    dfs(ii,jj,board);
                }
            }
        }
    }

注意

字符分别是大写的X和大写的O,我把O当成了0
在这里插入图片描述

相关推荐

  1. 【DFS】130.围绕区域

    2024-06-16 16:10:01       39 阅读
  2. 力扣:130. 围绕区域

    2024-06-16 16:10:01       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-16 16:10:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-16 16:10:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-16 16:10:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-16 16:10:01       20 阅读

热门阅读

  1. 超级数据查看器 教程pdf 1-31集 百度网盘

    2024-06-16 16:10:01       9 阅读
  2. Oracle数据库之多行函数(十九)

    2024-06-16 16:10:01       8 阅读
  3. js 刷题常用方法

    2024-06-16 16:10:01       8 阅读
  4. [C++] 小游戏 斗破苍穹 2.11.6 版本 zty出品

    2024-06-16 16:10:01       9 阅读
  5. 什么是仲裁器(Arbiter)?

    2024-06-16 16:10:01       24 阅读
  6. C++学习(21)

    2024-06-16 16:10:01       10 阅读
  7. (53)MOS管专题--->(08)MOS管N沟道MOS管

    2024-06-16 16:10:01       11 阅读
  8. MySQL 考证作用

    2024-06-16 16:10:01       11 阅读
  9. grub引导LinuxMint

    2024-06-16 16:10:01       9 阅读
  10. MongoDB 自动增长

    2024-06-16 16:10:01       8 阅读
  11. 2.MongoDB 用户管理

    2024-06-16 16:10:01       6 阅读