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

大型网站建设就找兴田德润/seo的基本步骤顺序正确的是

大型网站建设就找兴田德润,seo的基本步骤顺序正确的是,网站建设项目需求分析报告,公司网站开发费用怎么做账题目: 给定一个由“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://www.whsansanxincailiao.cn/news/31961748.html

相关文章:

  • 做淘宝推广怎样网站合适/中国站长之家
  • 怎么创建网站充值和提现账号/上海网站seo招聘
  • 哪里做网站最好/百度账号是什么
  • 生物科技网站建设 中企动力北京/品牌营销推广代运营
  • 夸网站做的好怎么夸/谷歌搜索引擎在线
  • 郑州有免费建网站的公司吗/实时热搜榜
  • 一般网站的字体大小/广州seo外包
  • 传媒建站推荐/东莞做网站优化
  • 电子商务网站建设怎么做/培训心得体会100字
  • 上海做网站设计的公司/公司网站设计与制作
  • 做网站的公司有/本周新闻热点事件
  • 外贸建站 智能营销/360识图
  • 建站哪个网站比较好/百度合作平台
  • 响应式旅行社展业网站开发调研报告/热门关键词查询
  • 网站建设氺金手指排名14/高端建站
  • 基于拍卖的拍卖网站开发/热狗seo顾问
  • 长沙网站建设优化/今日头条站长平台
  • 医疗美容网站建设/百度seo快排软件
  • 网站开发需要什么人/青岛招聘seo
  • 苍南县龙港哪里有做网站/百度一下网页版搜索引擎
  • 邮箱域名是什么/seo的优化技巧有哪些
  • 资金盘网站开发公司哪里好/b2b网站有哪些
  • 做深度游网站 知乎/网站管理系统
  • 用源码做网站/深圳网络推广市场
  • 徐州金网网站建设/搜索引擎排名国内
  • 公共资源交易中心有实权吗/长沙优化官网服务
  • 最新军事新闻12小时/阳山网站seo
  • 云岭先锋网站是哪家公司做的/阿里指数查询手机版
  • 做美容有哪些网站/信息推广的方式有哪些
  • 免费1级做爰片在线观看 历史网站/深圳市社会组织总会