day60(1.19)——leetcode面试经典150

130. 被围绕的区域

130. 被包围的区域

回家之后真的会变变得很懒惰啊啊啊

这道题就是先找到靠近边缘的O,并全部标记成T,最后通过遍历将所有O设置成X,所有的T恢复成O

题目:

题解:

java 复制代码
class Solution {
    int l;
    int r;
    public void solve(char[][] board) {
        if(board.length == 0) {
            return ;
        }
        l = board.length;
        r = board[0].length;
        int i = 0;
        int j = 0;
        for(j=0;j<r;j++) {
            if(board[0][j] == 'O') {
                dfs(board,0,j);
            }
            if(board[l-1][j] == 'O') {
                dfs(board,l-1,j);
            }
        }
        for(i=0;i<l;i++) {
            if(board[i][0] == 'O') {
                dfs(board,i,0);
            }
            if(board[i][r-1] == 'O') {
                dfs(board,i,r-1);
            }
        }
        for(i=0;i<l;i++) {
            for(j=0;j<r;j++) {
                if(board[i][j] == 'O') {
                    board[i][j] = 'X';
                }
                else if(board[i][j] == 'T') {
                    board[i][j] = 'O';
                }
            }
        }
    }

    void dfs(char[][] board, int x, int y) {
        if(x < 0 || x >= l || y < 0 || y >= r || board[x][y] != 'O') {
            return ;
        }
        board[x][y] = 'T';
        dfs(board,x,y+1);
        dfs(board,x+1,y);
        dfs(board,x-1,y);
        dfs(board,x,y-1);
    }
}
相关推荐
Asize3 小时前
146. LRU 缓存
算法
Asize3 小时前
543. 二叉树的直径
算法
lemon_sjdk3 小时前
ObjectProperty
java·开发语言·算法
吴声子夜歌4 小时前
Java面试——HBase原理及应用
java·面试·hbase
Zentceh4 小时前
AI-ISP在夜视机芯中的应用:从传统ISP到PixelClean全彩夜视的进化
人工智能·科技·算法·计算机视觉·车载系统·视频·智能硬件
xier_ran4 小时前
【infra之路】AWQ 详解:激活感知权重保护,让 W4A16 量化精度超越 GPTQ
线性代数·算法·机器学习·量化·infra
吴声子夜歌4 小时前
Java面试——ElasticSearch原理及应用
java·面试·es
吴声子夜歌4 小时前
Java面试——Spring原理及应用(一)
java·spring·面试
亦皓ai5 小时前
AI时代后端工程(二):AI把代码写得越来越快,我却越来越不敢让它直接开工了
人工智能·算法·机器学习·搜索引擎·transformer
liangshanbo12155 小时前
Nginx 进程管理命令深度面试题解析
java·nginx·面试