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);
    }
}
相关推荐
野生技术架构师1 小时前
金三银四面试总结篇,汇总 Java 面试突击班后的面试小册
java·面试·职场和发展
_深海凉_1 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
ja哇2 小时前
大厂面试高频八股
java·面试·职场和发展
踩坑记录2 小时前
leetcode hot100 寻找两个正序数组的中位数 hard 二分查找 双指针
leetcode
旖-旎2 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
谭欣辰2 小时前
C++快速幂完整实战讲解
算法·决策树·机器学习
Mr_pyx2 小时前
【LeetHOT100】随机链表的复制——Java多解法详解
算法·深度优先
AIFarmer3 小时前
【无标题】
开发语言·c++·算法
AGV算法笔记3 小时前
CVPR 2025 最新感知算法解读:GaussianLSS 如何用 Gaussian Splatting 重构 BEV 表示?
算法·重构·自动驾驶·3d视觉·感知算法·多视角视觉