力扣:130. 被围绕的区域

 深度优先搜索解法:

1.先从矩阵的外部的来标记符合条件的O字符。把标记的O字符换成字符A,同时在边界的O字符的基础上继续来查找和边界相连的O字符。

2.之后用for循环来遍历二维数组遍历到记号A的字符就给他赋值为O,其他的字符都赋值为X。

class Solution {
    int m,n;
    public void solve(char[][] board) {
        //得到矩阵的长度
       m=board.length;
       //得到矩阵的宽度
       n=board[0].length;
       //标记0列和n-1列边界的字符O
      for(int i=0;im-1||j<0||j>n-1||board[i][j]!='O'){
            return;
        }
        //标记符合条件的值
        board[i][j]='A';
        //进行深度优先搜索来查找边界相邻的O
        biaoji(i,j+1,board);
        biaoji(i,j-1,board);
        biaoji(i+1,j,board);
        biaoji(i-1,j,board);
    }
}

你可能感兴趣的:(数组,leetcode,算法)