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

深度优先搜索|130, 200

深度优先搜索|130. 被围绕的区域, 200. 岛屿数量

  • 被围绕的区域
  • 岛屿数量

被围绕的区域

这个题应该是从外到里做,我们应该去找和外圈的’O’相通的所有’O’,而不是去找内圈被包围的’O’。
所以我们做的就是从边界的’O’出发,把和他相连的所有’O’都标为’A’,也就是说遍历到最后,没有被接触过的(还是’O’)的那些就一定是被包围的。
那么把所有标为’A’的(没有被包围的’O’)转回’O’;然后把所有没被碰过的’O’(被包围的)转成’X’。

class Solution:def solve(self, board: List[List[str]]) -> None:"""Do not return anything, modify board in-place instead."""def direction(i,j,m,n):l = [[i-1,j],[i+1,j],[i,j-1],[i,j+1]]if i == 0:l.remove([i-1,j])if j == 0:l.remove([i,j-1])if i == m-1:l.remove([i+1,j])if j == n-1:l.remove([i,j+1])return lm = len(board)n = len(board[0])used = [[False]*n for _ in range(m)]def backtracking(i,j):if board[i][j] != 'O': return board[i][j] = 'A'l = direction(i,j,m,n)#print(i,j,l)#print(board)for k1,k2 in l:backtracking(k1,k2)for i in range(m):backtracking(i,0)backtracking(i,n-1)for j in range(n):backtracking(0,j)backtracking(m-1,j)for i in range(m):for j in range(n):if board[i][j] == 'A':board[i][j] = 'O'elif board[i][j] == 'O':board[i][j] = 'X'

岛屿数量

和上一题一样,从边界的岛开始一路往里找连接的岛,而且题目说的很清晰。

class Solution:def numIslands(self, grid: List[List[str]]) -> int:def direction(i,j,m,n):l = [[i-1,j],[i+1,j],[i,j-1],[i,j+1]]if i == 0:l.remove([i-1,j])if j == 0:l.remove([i,j-1])if i == m-1:l.remove([i+1,j])if j == n-1:l.remove([i,j+1])return lm = len(grid)n = len(grid[0])used = [[False]*n for _ in range(m)]def backtracking(i,j):if grid[i][j] == '0': returnused[i][j] = Truel = direction(i,j,m,n)for k1,k2 in l:if used[k1][k2]: continue backtracking(k1,k2)res = 0for i in range(m):for j in range(n):if used[i][j] or grid[i][j] == '0': continuebacktracking(i,j)res += 1return res

相关文章:

深度优先搜索|130, 200

深度优先搜索|130. 被围绕的区域, 200. 岛屿数量 被围绕的区域岛屿数量 被围绕的区域 这个题应该是从外到里做,我们应该去找和外圈的’O’相通的所有’O’,而不是去找内圈被包围的’O’。 所以我们做的就是从边界的’O’出发,把和他相连的所…...

go-resty

一. go-resty一个优秀的 HTTP 客户端库 go-resty超时控制示例 go-resty自动重示例 go-resty TLS示例 go-resty 与连接池 go-resty 与代理 go-resty 与认证 总结go-resty中提供的API 一. go-resty一个优秀的 HTTP 客户端库 在 Golang 标准库中提供了net/http 具体参考该文档 这…...

香港服务器速度不稳定的原因有哪些

香港服务器速度不稳定的原因有哪些 网络连接的稳定性和速度对于个人和企业来说至关重要。然而,许多用户经常遇到香港服务器速度不稳定的问题,有时候快,有时候慢,这给他们的在线体验和工作效率带来了困扰。本文将探讨香港服务器速…...

企业架构NOSQL数据库之MongoDB

目录 一、背景描述及其方案设计 (一)业务背景描述 (二)模拟运维设计方案 二、Mongodb介绍 (一)nosql介绍 (二)产品特点 1、存储性 2、 效率性 3、结构 三、安装和配置 (一&#xff09…...

鸟哥马哥共叙Linux发展

导读北京时间3月28日,由51CTO学院和人民邮电出版社信息技术分社联合举办的[开放见远]“鸟哥”大陆行Linux技术沙龙在位于北京市西三环久凌大厦的51CTO学院举行。 台湾著名Linux网站——“鸟哥的Linux私房菜”站长蔡德明,51CTO学院讲师马哥教育创始人马永…...

OpenCV中常用算子

一、图像运算 Mat src, src1, src2, dst;// 图像运算 加 减 乘 除cv::add(src1, src2, dst); // 相加:src1src2cv::scaleAdd(src1, 1.0, src2, dst); // 相加:1.0*src1src2cv::addWeighted(src1, 0.3, src2, 0.7,…...

Android 11.0 系统限制上网系列之iptables用IOemNetd实现app某个时间段禁止上网的功能实现

1.前言 在11.0的系统rom定制化开发中,对于系统限制网络的使用,在system中netd网络这块的产品需要中,会要求设置app某个时间段禁止上网的功能, liunx中iptables命令也是比较重要的,接下来就来在IOemNetd这块实现app某个时间段禁止上网的的相关功能,就是在 系统中只能允许…...

【JavaSE】面向对象编程思想之继承

【本节目标】 1. 继承 2. 组合 目录 1. 为什么需要继承 2. 继承概念 3. 继承的语法 4. 父类成员访问 4.1 子类中访问父类的成员变量 4.2 子类中访问父类的成员方法 5. super关键字 6. 子类构造方法 7. super和this 8. 再谈初始化 9. protected 关键字 10. 继承方式…...

Golang make和new的区别

make 和 new new函数 作用 分配内存设置零值返回指针 eg: type Student struct{name stringage int }func main(){//new 一个内建类型num : new(int)fmt.Println(*num) //打印:0//new一个自定义类型s : new(Student)s.name "yx"fmt.Prin…...

(前后端交互式)Ajax上传图片 + 更换背景图片

前后端交互图片文件 上传-图片 注意1:上传的图片必须在2MB以内 注意2:服务器端oss(阿里云对象存储)为了安全性,图片url网址不能直接在浏览器地址栏访问 请用img/背景图方式进行使用 上传图片的代码实现 \* 目标&#…...

自媒体常见玩法

有声小说转成视频 题材来源 喜马拉雅 工具 https://trace.moe/ 33台词找台词 文字转视频 题材来源 小说类APP书籍 音乐转视频...

【react】react生命周期钩子函数:

文章目录 一、生命周期概念:二、生命周期:三、挂载阶段(constructor > render > componentDidMount):四、更新阶段(render > componentDidUpdate):五、卸载阶段(componentWillUnmount …...

CRM系统哪些功能可以个性化定制?

不同的企业有着不同的业务流程和需求,因此在选型时就需要一款可以个性化定制的CRM系统。下面说说可以个性化定制的CRM系统的功能和优势。 如何实现个性化定制? Zoho CRM支持个性化定制,您可以创建自定义功能模块、字段以及业务流程&#xf…...

51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验二 LED闪烁

目录 前言 一、原理图及知识点介绍 二、代码分析 知识点四:delay(u16 i)这个函数为什么i1时,大约延时10us? 前言 已经是第二个实验了,上一个实验是点亮第一个LED灯,这个实验是LED的闪烁。 一、原理图及知识点介绍…...

PaperEdge 文档图像矫正

效果 地址: https://github.com/cvlab-stonybrook/PaperEdge...

入门NLTK:Python自然语言处理库初级教程

NLTK(Natural Language Toolkit)是一个Python库,用于实现自然语言处理(NLP)的许多任务。NLTK包括一些有用的工具和资源,如文本语料库、词性标注器、语法分析器等。在这篇初级教程中,我们将了解N…...

Android 死机问题学习笔记

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、死机系统简图二、死机的可能原因三、死机问题需要分析哪些数据四 、Java Backtrace 分析五、常见 Java backtrace 举例六、Native Backtrace七、Ke…...

企业内网终端安全无客户端准入控制技术实践

终端无代理/无客户端准入控制技术因其良好的用户体验而倍受创新企业的青睐。无代理/无客户端准入控制技术,顾名思义,是一种在网络中对终端实施访问控制的方法,无需依赖特定的客户端软件。 不同于银行、医院等传统行业的终端准入控制需求&…...

Android 开发代码规范

一. AndroidStudio开发工具规范 使用最新的稳定版本.统一文件的编码格式为utf-8. 清除每个类里面的无效的import导包.代码样式统一,比如,tab缩进4个空格,或者 tab size等如果没有特殊情况使用默认的配置即可。每行字数每行字符数不得超过 160 字符&…...

c语言(函数)

目录 何为函数 库函数 自定义函数 二分查找数组下标 链式访问 函数的声明 函数定义 递归 正向打印数字 打印字符个数 使用临时变量 递归(不使用临时变量) n的阶乘 一般形式 递归 斐波那契数 递归 正常做法 何为函数 在计算机科学中,子程序是一个…...

Ubuntu22.04新系统下MVS V3.0.1驱动海康威视工业相机实战

1. 环境准备与系统迁移背景 最近把开发环境从Ubuntu16.04升级到了22.04,主要原因是新项目需要使用ROS2 Humble。说实话,系统迁移这事儿看着简单,实际操作起来还是有不少坑要踩的。特别是像我们这种用海康威视工业相机的,驱动兼容性…...

8大漫画网站一站式下载:comics-downloader跨平台自动化解决方案

8大漫画网站一站式下载:comics-downloader跨平台自动化解决方案 【免费下载链接】comics-downloader tool to download comics and manga in pdf/epub/cbr/cbz from a website 项目地址: https://gitcode.com/gh_mirrors/co/comics-downloader comics-downlo…...

【多模态架构避坑指南】:已上线的12个工业级项目中,87%因忽略“模态时序异步性”导致推理延迟飙升300%

第一章:多模态大模型架构设计原理详解 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型的核心目标是实现跨模态语义对齐与联合推理,其架构设计需兼顾异构输入的表征统一性、模态间交互的深度可控性,以及下游任务的泛化适配能力。…...

【 LangChain v1.2 入门系列教程】【二】消息类型与提示词工程

系列文章目录 【 LangChain v1.2 入门系列教程】【一】开篇入门 | 从零开始,跑通你的第一个 AI Agent 【 LangChain v1.2 入门系列教程】【二】消息类型与提示词工程 【 LangChain v1.2 入门系列教程】【三】工具(Tools)开发,让…...

高效管理IP资源:DHCP服务器监控的最佳实践

1. 为什么需要监控DHCP服务器? 想象一下你管理着一栋大型公寓楼,每个房间都需要分配唯一的门牌号。如果门牌号分配混乱,快递员找不到住户,住户之间也会互相串门。DHCP服务器就是网络世界的"门牌号分配系统"&#xff0c…...

2025届必备的降重复率方案实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 随着人工智能生成内容越来越广泛地被使用,降低文本AI检测率的工具出现了&#xf…...

Java2Flowchart:一款把 Java 方法一键转换成 Mermaid 流程图的 IntelliJ 插件

author ChangJin Wei (魏昌进)Java2Flowchart:一款把 Java 方法一键转换成 Mermaid 流程图的 IntelliJ 插件 在阅读复杂 Java 代码时,最耗费时间的往往不是语法,而是理解控制流: 这个方法到底先走哪条分支?循环是怎么退…...

绝地求生压枪难题破解:罗技鼠标宏配置终极指南

绝地求生压枪难题破解:罗技鼠标宏配置终极指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中枪械后坐力控制而…...

Unity3d使用SRDebugger屏幕输出调试信息

1.下载插件SRDebugger - Console & Tools On-Device2.导入到Unity工程,无需在杨景中添加任何实体和脚本就可使用3.打开菜单"Window/SRDebugger/Settings Window",进行设置4.运行程序,双击触发位置,即可看调试信息...

S/4 HANA Coding Block字段增强实战:从OXK3配置到CDS View生成的完整避坑指南

1. 为什么需要增强Coding Block字段? 在S/4 HANA项目实施过程中,财务模块的定制化需求几乎不可避免。我遇到过不少客户都提出过这样的需求:"能不能在会计凭证录入界面增加我们公司特有的字段?"比如有些制造业客户需要记…...