首页 > 其他分享 >【LeeCode】130. 被围绕的区域

【LeeCode】130. 被围绕的区域

时间:2023-04-26 23:03:59浏览次数:40  
标签:int 围绕 length dfs char LeeCode 130 board public

【题目描述】

给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' ,找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。

https://leetcode.cn/problems/surrounded-regions/description/

【示例】

【LeeCode】130. 被围绕的区域_i++


【代码】leecode

【LeeCode】130. 被围绕的区域_java_02

package com.company;
import java.util.*;

// 2023-04-26
class Solution {
    public void solve(char[][] board) {
        if (board == null || board.length == 0 )return;
        int m = board.length;
        int n = board[0].length;

        for (int i = 0; i < m; i++){
            for (int j = 0; j < n; j++){
                // 这里判断的是边缘的部分
                boolean isEdge = i == 0 || j == 0 || i == m - 1 || j == n - 1;
                // 边缘存在 0
                if (isEdge && board[i][j] == 'O'){
                    dfs(board, i, j);
                }
            }
        }

        for (int i = 0; i < m; i++){
            for (int j = 0; j < n; j++){
                if (board[i][j] == 'O'){
                    board[i][j] = 'X';
                }
                if (board[i][j] == '#'){
                    board[i][j] = 'O';
                }
            }
        }
    }

    public void dfs(char[][] board, int i, int j) {
        if (i < 0 || j < 0 || i >= board.length || j >= board[0].length || board[i][j] == '#' || board[i][j] == 'X') return;
        // 说明已经搜索过了
        // 遍历后, 所有非边缘的 0 都变成了 #
        board[i][j] = '#';

        // 上 下 左 右
        dfs(board, i - 1, j);
        dfs(board, i + 1, j);
        dfs(board, i, j - 1);
        dfs(board, i, j + 1);

    }
}
public class Test {
    public static void main(String[] args) {
        // 输出:[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]
        new Solution().solve(new char[][] {{'X','X','X','X'},{'X','O','O','X'},{'X','X','O','X'},{'X','O','X','X'}});
        new Solution().solve(new char[][] {{'X'}}); // 输出:['X']
    }
}


标签:int,围绕,length,dfs,char,LeeCode,130,board,public
From: https://blog.51cto.com/u_13682316/6229029

相关文章

  • 【LeeCode】934. 最短的桥 -- todo
    【题目描述】给你一个大小为 nxn 的二元矩阵 grid ,其中 1 表示陆地,0 表示水域。岛 是由四面相连的 1 形成的一个最大组,即不会与非组内的任何其他 1 相连。grid 中 恰好存在两座岛 。你可以将任意数量的 0 变为 1 ,以使两座岛连接起来,变成 一座岛 。返回必须......
  • 【LeeCode】1109. 航班预订统计
    【题目描述】这里有 n 个航班,它们分别从 1 到 n 进行编号。有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i]=[firsti,lasti,seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。请你返回一个......
  • 22 21 | 高性能设计,一切都围绕着契约精神
    你好,我是乔新亮。这一讲,我们来聊聊如何实现架构的高性能设计。前面我们讲过,产品思维有两个核心关键词:“契约精神”和“洞察人性”。其实高性能设计,也和契约精神是密切相关的。我将其总结为:高性能设计,一切围绕着契约精神。你可能会想,高性能设计不就是可以支撑大流量、高并发的架......
  • 20201302姬正坤《网络对抗技术》Exp5 信息搜集与漏洞扫描
    《网络对抗技术》Exp5信息搜集与漏洞扫描实践目标(1)各种搜索技巧的应用(2)DNSIP注册信息的查询(3)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)(4)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)实践步骤一、各种搜索技......
  • 题解 P9130 【[USACO23FEB] Hungry Cow P】
    赛时开始一眼线段树分治,交了几发都T了,就意识到事情不对。后来想了想发现势能分析不能带撤销。。。后来加了一些不能改变复杂度假了的优化,没过之后就自闭跑路了。。。赛后听别人说了个楼房重建就明白怎么做了。首先,我们离线下来把\(a\)排序,去重(这样方便一点,不然权值线段树上......
  • 20201306 Exp5 信息搜集与漏洞扫描
    目录一、实践目标及实践内容实践目标实践内容二、实践原理三、实践过程记录1、各种搜索技巧的应用搜索网址目录结构利用搜索引擎搜索特定类型的文件使用traceroute命令进行路由侦查2、DNSIP注册信息的查询whois查询nslookup查询dig查询LP2Location地理位置查询IP......
  • CF 1360E-Polygon,1300,思维题
    CF1360E-Polygon如果一个1不是在最右边或最下边,则一定有一个1在他的紧邻着的下边或右边,否则不合法。太妙了。#include<iostream>usingnamespacestd;constintN=1e2+10;intT,n;chara[N][N];intmain(){cin>>T;while(T--){......
  • ASEMI代理ADI亚德诺AD8130ARZ-REEL7车规级芯片
    编辑-ZAD8130ARZ-REEL7芯片参数:型号:AD8130ARZ-REEL7−3dB带宽:250MHz0.1dB平坦度的带宽:25MHz斜率:930V/μs建立时间:20ns上升和下降时间:1.5ns输出超速恢复:30ns二次谐波/三次谐波:−72/−79dBc输出IP3:26dBm共模抑制:96dB共模电压范围:1.25to3.8V电容:3pF 一般说明:AD8130ARZ-REEL7被设计......
  • ASEMI代理ADI亚德诺AD8130ARZ-REEL7车规级芯片
    编辑-ZAD8130ARZ-REEL7芯片参数:型号:AD8130ARZ-REEL7−3dB带宽:250MHz0.1dB平坦度的带宽:25MHz斜率:930V/μs建立时间:20ns上升和下降时间:1.5ns输出超速恢复:30ns二次谐波/三次谐波:−72/−79dBc输出IP3:26dBm共模抑制:96dB共模电压范围:1.25to3.8V电容:3pF  一般说明:A......
  • 【LeeCode】213. 打家劫舍 II
    【题目描述】你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房......