当前位置: 首页 > news >正文

【LeetCode 130. 被围绕的区域】

1. 题目

2. 分析

这题其实非常不错。如果正向解,非常麻烦;因为很难界定哪些O是被包围的?但是如果反向解呢?因为边界的O不会被包围,那么就可以想到跟边界O相连的O都不会被包围。那么除此之外的O都会被包围,题目就解决了。

3. 代码

class Solution:def solve(self, board: List[List[str]]) -> None:"""Do not return anything, modify board in-place instead."""m, n = len(board), len(board[0])vis = [[0] * n for i in range(m)]# 只从边界遍历for i in [0,m-1]:for j in range(n):if board[i][j] == 'O':                self.dfs(i, j, m, n, vis, board)for j in [0, n-1]:for i in range(m):if board[i][j] == 'O':                self.dfs(i, j, m, n, vis, board)print(vis)for i in range(m):for j in range(n):if vis[i][j] == 0:board[i][j] = 'X'def dfs(self, i, j, m, n, vis, board):if i>=0 and j>=0 and i<m and j< n:if vis[i][j] == 0 and board[i][j] == "O":vis[i][j] = 1for item in [(i-1,j), (i, j-1), (i+1, j), (i, j+1)]:new_i, new_j = itemself.dfs(new_i, new_j, m, n, vis, board)
http://www.lryc.cn/news/362216.html

相关文章:

  • 超市管理系统设计1——基本功能设计
  • 前端性能优化总结笔记
  • 51种企业应用架构模式详解
  • 零基础入门学习Python第二阶04SQL详解03
  • 【第二节】C/C++数据结构之线性表
  • 千帆 AppBuilder 工作流编排功能直播总结
  • Android百度人脸识别3.0配置
  • dolphinscheduler docker部署海豚mysql版本,docker重新封装正在运行服务为镜像
  • QAnything-1.4.01.4.1版本更新!使用指北!
  • 【ARM】Fusa Compiler 6.16 LTS的安全认证报告获取
  • 数据持久化第七课-URL重写与Ajax
  • 静态网页实现-人脸识别-案例(web)
  • ARM32开发——串口输入
  • 个人笔记--python用tanh画圆形,正方形,长方形(epsilon界面宽度)
  • 学习Java,stringbuilder用法
  • 16-云原生监控体系-rabbitmq_exporter监控 RabbitMQ-[部署Dashborad告警规则实战]
  • 四大运营商频段-2024
  • 260只出现一次的数字
  • 【高阶数据结构(八)】跳表详解
  • 用旧安卓手机当 linux 开发机
  • discuz如何添加主导航
  • [每日一练]患某种疾病的患者,正则表达式的匹配
  • PHP身份证识别接口、线上平台如何实现身份证实名认证功能?
  • 若依:mybatis查询的结果未映射到实体类报null
  • 成都百洲文化传媒有限公司电商服务可信吗?
  • 【递归、搜索与回溯】递归、搜索与回溯准备+递归主题
  • MVC前端怎么写:深入解析与实战指南
  • LINUX网络设置
  • 双指针解题
  • 【Text2SQL 论文】DIN-SQL:分解任务 + 自我纠正 + in-context 让 LLM 完成 Text2SQL