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);
    }
}
相关推荐
小O的算法实验室18 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
风止何安啊19 小时前
为什么要有 TypeScript?让 JS 告别 “薛定谔的 Bug”
前端·javascript·面试
郭涤生20 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿20 小时前
vector
c语言·开发语言·数据结构·c++·算法
Ricky111zzz20 小时前
leetcode学python记录1
python·算法·leetcode·职场和发展
汀、人工智能20 小时前
[特殊字符] 第58课:两个正序数组的中位数
数据结构·算法·数据库架构··数据流·两个正序数组的中位数
liu****20 小时前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
汀、人工智能20 小时前
[特殊字符] 第79课:分割等和子集
数据结构·算法·数据库架构·位运算·哈希表·分割等和子集
汀、人工智能20 小时前
[特殊字符] 第74课:完全平方数
数据结构·算法·数据库架构·图论·bfs·完全平方数
CoderCodingNo20 小时前
【GESP】C++四、五级练习题 luogu-P1177 【模板】排序
数据结构·c++·算法