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

130. 被围绕的区域

时间:2024-12-26 18:30:03浏览次数:3  
标签:区域 process self 围绕 List len range 130 board

  1. 题目链接

  2. 解题思路:通常想法是,把哪些'O'变成'X',这种想法很难做。一个比较简单点是,「哪些'O'不能变成'X'」。其实就是与第一行,最后一行,第一列,最后一列,「相邻的这些」'O',不能变成'X',其他的都能变成' X'.

    • 具体来说,把第一行、最后一行、第一列、最后一列的'O',通过「感染」函数,变成'1'
    • 然后遍历一遍,'1'就是不能变成'X',其他的全部都变成'X'
  3. 代码

    class Solution:
        def process(self, board: List[List[str]], i: int, j: int) -> None:
            if i < 0 or i >= len(board) or j < 0 or j >= len(board[0]) or board[i][j] != 'O':
                return
            board[i][j] = '1'
            self.process(board, i - 1, j)
            self.process(board, i + 1, j)
            self.process(board, i, j - 1)
            self.process(board, i, j + 1)
    
        def solve(self, board: List[List[str]]) -> None:
            if not board:
                return
            m, n = len(board), len(board[0])
            for i in range(m):
                self.process(board, i, 0)
                self.process(board, i, n - 1)
            for j in range(n):
                self.process(board, 0, j)
                self.process(board, m - 1, j)
            for i in range(m):
                for j in range(n):
                    if board[i][j] == '1':
                        board[i][j] = 'O'
                    else:
                        board[i][j] = 'X'
    

标签:区域,process,self,围绕,List,len,range,130,board
From: https://www.cnblogs.com/ouyangxx/p/18633969

相关文章

  • 3. JVM 内存区域
    JVM内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法栈】、线程共享区域【堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同,依赖用户线程的启动/结束而创建/销毁(在HotspotVM内,每个线程都与操作系统的本地线程直接映射,因此这部分内存区......
  • P1306 斐波那契公约数
    P1306斐波那契公约数对于Fibonacci数列:\[f_i=\begin{cases}[i=1]&i\leq1\\f_{i-1}+f_{i-2}&i\gt1\end{cases}\]请求出\(f_n\)与\(f_m\)的最大公约数,即\(\gcd(f_n,f_m)\)。数据规模与约定对于\(100\%\)的数据,保证\(1\l......
  • 皮带危险区域人员违规闯入识别智慧矿山一体机小知识:如何提升现有监控系统的性能?
    随着科技的不断进步,监控系统已成为保障安全、提高效率的关键工具。特别是在矿山等高风险行业,监控系统的性能直接关系到人员安全和生产效率。为了进一步提升现有监控系统的性能,确保其在复杂多变的环境中稳定运行,我们可以从多个维度进行优化和升级。以下是对提升监控系统性能的综合......
  • 区域入侵检测视频分析服务器小知识:视频分析技术的编解码标准性能有哪些?
    在现代数字视频技术迅速发展的背景下,视频编解码标准的性能对视频质量、传输效率以及用户体验产生了显著影响。随着视频内容需求的持续增长,不同标准的出现与演进为各类应用场景提供了更为高效的解决方案。从H.264(AVC)到新兴的AV1,各种编码技术以其各自的优缺点满足了不同行业与用户......
  • 破解多区域协作难题,打造无缝连接新生态,让企业效率倍增!
    跨国公司在全球范围内拥有多个分支机构、生产基地和供应链,为了实现高效的运营和多区域协作,跨国公司需要建立稳定、安全的网络连接,确保不同地区之间的数据传输顺畅。例如,苹果、微软、可口可乐等全球知名企业均在全球范围内进行商品和服务的国际贸易、资本投资以及资产配置和整合。......
  • 阅读报告 Phys. Rev. Lett. 130, 177001 (2023).
    摘要:本文为CollectiveTransportforNonlinearCurrent-VoltageCharacteristicsofDopedConductingPolymers,Phys.Rev.Lett.130,177001(2023)的阅读报告.文章中的参考文献均来自于文章Phys.Rev.Lett.130,177001(2023)底下的参考文献.报告正文:1.实验观测到......
  • hotspot-vue3 图片拖动划分热点区域 使用
    github地址https://github.com/shadow-Fiend/hotspot-vue3测试代码<template><divclass="interactive-image"><hotspot:image="image":zonesInit="zones":types="types":minSize="52":switchOpt......
  • html map area标签,图片热点区域
    <map>和<area>标签在HTML中用于定义图像映射。图像映射是一种在图像上定义多个热点(区域)的技术,每个热点可以是一个矩形、圆或者多边形,并且每个热点都可以链接到不同的URL或者执行不同的操作。下面是关于这两个标签的详细说明和示例:<map>标签<map>标签用于定义图像映射......
  • JVM简介—1.Java内存区域
    大纲1.运行时数据区的介绍2.运行时数据区各区域的作用3.各个版本内存区域的变化4.直接内存的使用和作用5.站在线程的角度看Java内存区域6.深入分析堆和栈的区别7.方法的出入栈和栈上分配、逃逸分析及TLAB8.虚拟机中的对象创建步骤9.对象的内存布局10.对象的访问定位11.......
  • 学期2024-2025-1 学号20241306 《计算机基础与程序设计》第13周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP))这个作业要求在哪里2024-2025-1计算机基础与程序设计第13周作业这个作业的目标C语言程序设计第12章作业正文...本博客链接教材学......