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

面试150 被围绕的区域

在这里插入图片描述

思路

使用DFS,将所有与边界相连的’O’都修改为‘#’,然后遍历数组,如果是遇到’#‘修改为’O’,如果是’O’修改为’X’。

class Solution:def solve(self, board: List[List[str]]) -> None:"""Do not return anything, modify board in-place instead."""m=len(board)n=len(board[0])direction=[(0,1),(1,0),(0,-1),(-1,0)]def dfs(x,y):if x<0 or x>=m or y<0 or y>=n or board[x][y]!='O':return board[x][y]='#'for dx,dy in direction:dfs(x+dx,y+dy)for i in range(m):if board[i][0]=='O':dfs(i,0)if board[i][n-1]=='O':dfs(i,n-1)for j in range(n):if board[0][j]=='O':dfs(0,j)if board[m-1][j]=='O':dfs(m-1,j)for i in range(m):for j in range(n):if board[i][j]=='#':board[i][j]='O'elif board[i][j]=='O':board[i][j]='X'
http://www.lryc.cn/news/592333.html

相关文章:

  • vue2 面试题及详细答案150道(71 - 80)
  • vue2 面试题及详细答案150道(91 - 100)
  • C++:vector(3)
  • 基于 fetch + ReadableStream 流式输出 实现 AI 聊天问答
  • 平板可以用来办公吗?从文档处理到创意创作的全面测评
  • openinstall九周年:聚焦安全防御,护航业务持续增长
  • 涉及海量数据的查询SQL建议使用“数据库函数”封装并调用
  • TCP通讯开发注意事项及常见问题解析
  • 如何检查GitHub上可能潜在的信息泄漏
  • web开发-HTML
  • leetcode2_135.分发糖果
  • leetcode15.三数之和题解:逻辑清晰带你分析
  • 华为欧拉系统(openEuler)安装 Docker 容器完整教程
  • Gemini Function Calling 和 Qwen3 Embedding和ReRanker模型
  • 服务器清理空间--主要是conda环境清理和删除
  • 弧焊机器人智能节气装置
  • Huber Loss(胡贝损失)详解:稳健回归的秘密武器 + Python实现
  • 【Git专栏】git如何切换到某个commit(超详细)
  • 铁路基础设施无人机巡检技术及管理平台
  • 【IOS webview】IOS13不支持svelte 样式嵌套
  • 计算机网络知名端口分配全表(0-1023)
  • 前端之CSS
  • Http请求中的特殊字符
  • 太阳辐射监测站:洞察太阳能量的科技之眼
  • RabbitMQ—TTL、死信队列、延迟队列
  • k8s:手动创建PV,解决postgis数据库本地永久存储
  • Java Set 集合详解:从基础语法到实战应用,彻底掌握去重与唯一性集合
  • 基于K8s ingress灰度发布配置
  • Docker报错:No address associated with hostname
  • 使用python读取json数据,简单的处理成元组数组