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

青海省教育厅门户网站学籍查询青岛工程建设监理公司网站

青海省教育厅门户网站学籍查询,青岛工程建设监理公司网站,wordpress先生,成品网页题目: 给定一个由“1”陆地和“0”水组成的网格,请计算网格中岛屿的数量 岛屿总是被水包围,并且每座岛屿只能由水平方向和竖直方向上相邻的陆地连接形成 此外,可以假设该网格的四条边均被水包围 方法一:深度优先搜索…

题目:

给定一个由“1”陆地和“0”水组成的网格,请计算网格中岛屿的数量

岛屿总是被水包围,并且每座岛屿只能由水平方向和竖直方向上相邻的陆地连接形成

此外,可以假设该网格的四条边均被水包围


方法一:深度优先搜索

将二维网格看成一个无向图,竖直或水平相邻的 1 之间有边相连

为了求出岛屿的数量,可以扫描整个二维网格。如果一个位置为 1,则以其为起始节点开始进行深度优先搜索。在深度优先搜索的过程中,每个搜索到的 1 都会被重新标记为 0。最终岛屿的数量就是我们进行深度优先搜索的次数。

class Solution(object):def dfs(self,grid,r,c):grid[r][c]="0" #标记已经访问过的陆地nr,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":self.dfs(grid,x,y) #递归搜索相邻陆地def numIslands(self,grid):nr=len(grid)  #获取行数if nr==0:return 0nc=len(grid[0])  #获取列数num_islands=0 #记录岛屿的数量for r in range(nr):for c in range(nc):if grid[r][c]=="1": #发现新的岛屿num_islands+=1self.dfs(grid,r,c) # 用 DFS 访问整个岛屿return num_islands

时间复杂度:O(MN)其中 M 和 N 分别为行数和列数

时间复杂度:O(MN)


方法二:广度优先搜素

为了求出岛屿的数量,我们可以扫描整个二维网格,如果一个位置为 1,则将其加入队列,开始进行广度优先搜索。在广度优先搜索的过程中,每个搜索到的 1 都会被重新标记为 0。直到队列为空,搜索结束

最终岛屿的数量就是我们进行广度优先搜索的次数。

class Solution(object):def numIslands(self, grid):""":type grid: List[List[str]]:rtype: int"""nr=len(grid)  #获取网格的行数if nr==0:  #网格为空,返回0return 0nc=len(grid[0]) #获取网格的列数nums_islands=0  #初始化岛屿数目for r in range(nr):for c in range(nc):if grid[r][c]=="1": #如果当前单元格的值是 "1",表示发现一个新的岛屿nums_islands+=1grid[r][c]=="0" #将当前单元格的值从 "1" 改为 "0",表示已经访问过neighbors=deque([(r,c)])#初始化一个双端队列 neighbors,并将当前单元格的坐标 (r, c) 加入队列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<nr and 0<=y<nc and grid[x][y]=="1":neighbors.append((x,y)) #将符合条件的相邻单元格加入队列grid[x][y]="0"return nums_islands

时间复杂度:O(MN)

空间复杂度:O(min(M,N)),在最坏情况下,整个网格均为陆地,队列的大小可以达到 min(M,N)

源自力扣官方题解


文章转载自:

http://mGcJvp7C.ptzbg.cn
http://TeWBapAM.ptzbg.cn
http://vIolgnQb.ptzbg.cn
http://hVGtvwK6.ptzbg.cn
http://TCGkTwKq.ptzbg.cn
http://oEalmk39.ptzbg.cn
http://Ep3lpPBu.ptzbg.cn
http://t0Mk37ZZ.ptzbg.cn
http://ALjJZ9gk.ptzbg.cn
http://FTG9qGZt.ptzbg.cn
http://7hmGUKxt.ptzbg.cn
http://MHGv6JY3.ptzbg.cn
http://hUkFxW75.ptzbg.cn
http://EcLLQqz0.ptzbg.cn
http://lcxT5kvp.ptzbg.cn
http://d6AkeCot.ptzbg.cn
http://0N3Vwkve.ptzbg.cn
http://DUGiSQlj.ptzbg.cn
http://eGOyiwI2.ptzbg.cn
http://cZ9mf8JR.ptzbg.cn
http://CmCviwGu.ptzbg.cn
http://0WglLYcD.ptzbg.cn
http://w5qWo39p.ptzbg.cn
http://V35AG5ao.ptzbg.cn
http://aNaTsf07.ptzbg.cn
http://1NaiftCz.ptzbg.cn
http://q59W759N.ptzbg.cn
http://00DIKtcg.ptzbg.cn
http://uo8Fvne6.ptzbg.cn
http://BCYwbKX7.ptzbg.cn
http://www.dtcms.com/wzjs/690842.html

相关文章:

  • 建设一个好的网站多php网站空间
  • 成品网站10款莆田网站建设方法
  • 网站开发 pptcnn头条新闻
  • 西宁最好网站建设公司哪家好电商详情页设计教程
  • 免费网站制作在线网站如何做品牌宣传
  • 做网站找我只做网站不做app
  • 网站首页被k 做跳转php网页制作工具
  • 这几年做啥网站致富wordpress官方文档下载
  • seo网站制作优化做食品网站需要什么
  • 微信在线登录网页版seo在线工具
  • 建设产品信息网站网站建设开发 脚本语言
  • 做网站需要什么样的电脑配置wordpress crm 主题
  • 深圳网站建设 设计首选公司qq空间搬家wordpress
  • 公司网站想维护服务器车险网站模版
  • 深圳好客站seo网站开发建设好处
  • 网站建设合同的验收表seo好学吗
  • 做网站的IT行业ui设计培训多长时间能学会
  • 企业网站建设会计分录备案意味着什么
  • 服务态度 专业的网站建设百度爱采购推广怎么收费
  • 网站模板怎么改中国建设银行分行网站
  • 母婴网站这么做公司宣传册模板
  • 专业门户网站开发外贸是先做网站还是做阿里巴巴
  • 泰州网页网站制作电商网站怎么做与众不同
  • 郑州手机端建站模板国家建设部网站证书查询
  • 做请帖的网站wordpress 插件 样式
  • 中国建设局网站招聘电商基础入门教程
  • 凡科免费建站怎么样企业网站怎么做推广比较好
  • 南京做网站公司地点搜索引擎营销原理
  • 网站建设方案 云盘wordpress 第一张图片
  • 安阳网站seo代理网络工具下载