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

力扣-200.岛屿数量

刷力扣热题–第二十四天:200.岛屿数量
新手第二十四天 奋战敲代码,持之以恒,见证成长

1.题目描述

在这里插入图片描述

2.题目解答

这道题刚开始想的确实想的绞尽脑汁的,看了相关解答才明白的,三种方法,这里想先用两种方法进行实现,一个深度优先,一个广度优先。深度优先就是从一个点遍历直至到底,再向上一层,一个一个遍历,广度优先就更类似于树的层序遍历,最后岛屿的个数就是搜索的次数。
(1)广度优先搜索
使用双端队列的方式第一次见,所以这里参考的是力扣官网的写法,自己还得再理解消化一下~
在这里插入图片描述

(2)深度优先搜索
深度优先目前位置还是不太会实现,等在理解理解,扎实一下算法~
在这里插入图片描述

3.心得体会

(1)广度优先搜索

class Solution(object):def numIslands(self, grid):""":type grid: List[List[str]]:rtype: int"""if len(grid) == 0:return 0nums = 0for i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j] == "1":nums += 1grid[i][j] = "0"neighbors = collections.deque([(i, j)])while neighbors:row, col = neighbors.popleft()for x, y in [(row - 1, col), (row + 1, col), (row, col - 1), (row, col + 1)]:if 0 <= x < len(grid) and 0 <= y < len(grid[0]) and grid[x][y] == "1":neighbors.append((x, y))grid[x][y] = "0"return nums

(2)深度优先搜索

class Solution(object):def numIslands(self, grid):""":type grid: List[List[str]]:rtype: int"""def dfs(grid, r, c):grid[r][c] = 0nr, nc = len(grid), len(grid[0])for x, y in [(r - 1, c), (r + 1, c), (r, c - 1), (r, c + 1)]:if 0 <= x < nr and 0 <= y < nc and grid[x][y] == "1":dfs(grid, x, y)if len(grid) == 0:return 0nums = 0for i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j] == "1":nums += 1dfs(grid,i,j)return nums

4.做题时长

8月2日 16:45-17:30 终于,这件事情坚持了一个月了,最近一直在看奥运会,奥运精神极大的感染了我,每当五星红旗冉冉升起的时候,就会觉着自己走的每一步都是有意义的,青年一代的热血,未来必将会洒向祖国需要的地方!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 广州城市信息模型(CIM)白皮书学习
  • 【iOS】暑假第二周——网易云APP 仿写
  • 【TwinCAT3教程】IEC61131-3编程基础
  • Yolov8添加ConvNetV1和V2模块
  • PostgreSQL数据库内核(二):通过initdb传递guc参数
  • [安洵杯 2019]easy_web1
  • 微信小程序接口实现语音转文字
  • 牛客周赛 Round 54 (c++题解)
  • 使用Echarts来实现数据可视化
  • python-查找元素3(赛氪OJ)
  • minio文件上传
  • 书籍去掉字符串中连续出现k个0的子串
  • Linux防火墙2
  • JS+H5美观的带搜索的博客文章列表(可搜索多个参数)
  • 数据可视化(王者英雄数据分析)
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【EOS】Cleos基础
  • C++类的相互关联
  • ES6--对象的扩展
  • JS函数式编程 数组部分风格 ES6版
  • Linux中的硬链接与软链接
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • overflow: hidden IE7无效
  • react-native 安卓真机环境搭建
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • storm drpc实例
  • Webpack 4x 之路 ( 四 )
  • 笨办法学C 练习34:动态数组
  • 我看到的前端
  • 学习Vue.js的五个小例子
  • FaaS 的简单实践
  • Hibernate主键生成策略及选择
  • Java总结 - String - 这篇请使劲喷我
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #stm32驱动外设模块总结w5500模块
  • (5)STL算法之复制
  • (C#)一个最简单的链表类
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (一) storm的集群安装与配置
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)德国人的记事本
  • (转)原始图像数据和PDF中的图像数据
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .gitattributes 文件
  • .net CHARTING图表控件下载地址
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net framework4与其client profile版本的区别
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET分布式缓存Memcached从入门到实战
  • /proc/stat文件详解(翻译)
  • @RequestBody与@ResponseBody的使用