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);
    }
}
相关推荐
尾善爱看海8 小时前
Vue 面试收官篇:SSR、性能优化落地、30 道高频面试题精讲(附标准答案)
前端·javascript·vue.js·面试·vue
v_34836087628 小时前
Android native端 堆栈打印
android·算法
residual_fan8 小时前
【学术论文】航空发动机故障诊断智能体:基于持续对比强化学习的动态优化方法
人工智能·算法·数据挖掘·数据分析
GreenTea9 小时前
OpenAI Agents API 上手实测:一次调用把整个 agent loop 甩给 OpenAI
前端·后端·算法
深圳满意度咨询10 小时前
医院满意度数字化测评系统:从数据采集到智能决策的技术实践
算法
xiangyun6111 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun6111 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
302wanger12 小时前
推荐下我的两个AI信息源
算法
索尔~古德曼13 小时前
CF——错题的集合
算法
SL_staff13 小时前
JVS-Logic:从页面配置工具到企业级业务逻辑中枢的技术演进
java·算法·全栈