LeetCode surrounded region

news/2024/11/25 7:30:36/
  1. Surrounded Regions
    Given an m x n matrix board containing ‘X’ and ‘O’, capture all regions that are 4-directionally surrounded by ‘X’.

A region is captured by flipping all 'O’s into 'X’s in that surrounded region.

Example 1:

Input: board = [[“X”,“X”,“X”,“X”],[“X”,“O”,“O”,“X”],[“X”,“X”,“O”,“X”],[“X”,“O”,“X”,“X”]]
Output: [[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“O”,“X”,“X”]]
Explanation: Notice that an ‘O’ should not be flipped if:

  • It is on the border, or
  • It is adjacent to an ‘O’ that should not be flipped.
    The bottom ‘O’ is on the border, so it is not flipped.
    The other three ‘O’ form a surrounded region, so they are flipped.

思路:考虑到目标是“把所有内部被X围住的O转成X”,把所有外围(还有与外围相连的)的O 转成 F ( 也可以是其他别的字符);
然后,遍历整个矩阵,把此时所有O转成X,把所有F恢复成O.

public void solve(char[][] ma){int n = ma.length;int m = ma[0].length;for(int i=0;i<n;i++){if(ma[i][0]=='O'){free(ma,i,0);}if(ma[i][m-1]=='O'){free(ma,i,m-1);}}for(int j=1;j<m-1;j++){if(ma[0][j]=='O'){free(ma,0,j);}if(ma[n-1][j]=='O'){free(ma,n-1,j);}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(ma[i][j]=='O'){ma[i][j]='X';}if(ma[i][j]=='F'){ma[i][j]='O';}}}}public void free(char[][] ma, int i, int j){if(i<0||i>=ma.length||j<0||j>=ma[0].length||ma[i][j]!='O'){return;}ma[i][j]='F';free(ma,i-1,j);free(ma,i,j-1);free(ma,i+1,j);free(ma,i,j+1);}

http://www.ppmy.cn/news/101720.html

相关文章

初识MySQL

&#x1f495;与其抱怨生活的不公&#xff0c;不如积极行动改变它。&#x1f495; &#x1f43c;作者&#xff1a;不能再留遗憾了&#x1f43c; &#x1f386;专栏&#xff1a;MySQL学习&#x1f386; &#x1f697;本文章主要内容&#xff1a;简单了解什么是MySQL、MySQL的发展…

企业使用WordPress网站的6个理由

WordPress 为超过三分之一的网络和超过 38%的顶级 10K 网站提供支持。它最初是一个博客平台&#xff0c;现在是世界上使用最广泛的内容管理系统&#xff0c;对于希望在未来几年扩大规模的网站所有者来说&#xff0c;是一个明智的选择。 除了使用开源软件的好处之外&#xff0c…

Linux进程地址空间——上篇

目录 一. 前言&#xff1a; 二.进程地址空间 1.通过一个例子去初步的了解进程地址空间&#xff1a; 使用VS写了一段代码&#xff1a; 在Linux中使用vim编辑器写类似的代码&#xff1a; 结果解析&#xff1a; 2.什么是进程地址空间&#xff1f; 举个例子大家就明白了画饼的…

LeetCode 2455. 可被三整除的偶数的平均值

【LetMeFly】2455.可被三整除的偶数的平均值 力扣题目链接&#xff1a;https://leetcode.cn/problems/average-value-of-even-numbers-that-are-divisible-by-three/ 给你一个由正整数组成的整数数组 nums &#xff0c;返回其中可被 3 整除的所有偶数的平均值。 注意&#x…

一文学会TypeScript

TypeScript笔记 文章目录 TypeScript笔记[toc]第一章 TypeScript简介1.1、TypeScript简介1.2、TypeScript安装1.3、TypeScript项目初始化1.4、Hello TypeScript 第二章 TypeScript数据类型2.1、TypeScript的类型2.2、字面量类型2.3、联合类型2.4、any 与 unknown2.5、类型断言2…

nvidia-smi 可以显示gpu占用量和使用率,但不显示PID等详细进程信息的解决方法

使用fuser -v /dev/nvidia*查看使用gpu的进程号 使用fuser命令可以查看哪些进程正在使用指定的文件或目录。在Linux系统中&#xff0c;GPU设备通常被映射到/dev/nvidia*文件中&#xff0c;因此可以使用fuser命令来查看哪些进程正在使用GPU设备。以下是使用fuser命令查看使用GP…

微服务架构综合实战 一文让你了解什么是微服务 使用PHP 搭建微服务框架 最全微服务架构讲解以及演示

本文将带你从基础的微服务架构设计、网络协议、注册中心、配置中心、网关层面 渐进式讲解其微服务。 一、微服务架构设计方案 架构演进 在将微服务之前 我们看看目前的架构 单体架构 按照模块划分&#xff0c;公用一个数据库 垂直拆分架构 按业务功能划分单独的子系统&…

2023年上半年软件设计师考试中级真题答案+解析(详细版)

目录 背景过程计算机组成原理产权保护结构化开发方法 总结 背景 2023年软考讲解 软考&#xff08;软件技术人员职业资格考试&#xff09;是中国的一项职业资格考试&#xff0c;主要针对软件行业从业人员。软考的主要目标是评估考生在软件开发、软件测试、软件项目管理等方面的…