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

青岛做网站优化公司站长统计网站

青岛做网站优化公司,站长统计网站,wordpress上百人,桦南县建设局网站代码随想录算法训练营Day 63| 图论 part03 | 417.太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙 文章目录 代码随想录算法训练营Day 63| 图论 part03 | 417.太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙17.太平洋大西洋水流问题一、DFS二、BFS三、本题总结 82…

代码随想录算法训练营Day 63| 图论 part03 | 417.太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙


文章目录

  • 代码随想录算法训练营Day 63| 图论 part03 | 417.太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙
  • 17.太平洋大西洋水流问题
    • 一、DFS
    • 二、BFS
    • 三、本题总结
  • 827.最大人工岛
    • 一、DFS 用全局变量得到area
    • 二、DFS 用局部变量
    • 三、BFS
  • 127. 单词接龙
    • 一、BFS


17.太平洋大西洋水流问题

题目链接

一、DFS

class Solution(object):def pacificAtlantic(self, heights):""":type heights: List[List[int]]:rtype: List[List[int]]"""m,n=len(heights),len(heights[0])dirs = [(-1,0),(0,1),(1,0),(0,-1)]pacific=[[0]*n for _ in range(m)]atlantic=[[0]*n for _ in range(m)]result=[] # DFSdef dfs(x,y,ocean):ocean[x][y]=1for d in dirs:nextx,nexty=x+d[0],y+d[1]if 0 <= nextx < m and 0 <= nexty < n  and heights[nextx][nexty] >=heights[x][y] and ocean[nextx][nexty]==0:dfs(nextx,nexty,ocean)for i in range(m):dfs(i,0,pacific)dfs(i,n-1,atlantic)for j in range(n):dfs(0,j,pacific)dfs(m-1,j,atlantic)for i in range(m):for j in range(n):if pacific[i][j]==1 and atlantic[i][j]==1:result.append([i,j])return result

二、BFS

class Solution(object):def pacificAtlantic(self, heights):""":type heights: List[List[int]]:rtype: List[List[int]]"""m,n=len(heights),len(heights[0])dirs = [(-1,0),(0,1),(1,0),(0,-1)]pacific=[[0]*n for _ in range(m)]atlantic=[[0]*n for _ in range(m)]result=[] # BFSdef bfs(x,y,ocean):q=collections.deque()q.append((x,y))ocean[x][y]=1while q:x,y = q.popleft()for d in dirs:nextx,nexty=x+d[0],y+d[1]if 0 <= nextx < m and 0 <= nexty < n  and heights[nextx][nexty] >=heights[x][y] and ocean[nextx][nexty]==0:ocean[nextx][nexty]=1q.append((nextx,nexty))for i in range(m):bfs(i,0,pacific)bfs(i,n-1,atlantic)for j in range(n):bfs(0,j,pacific)bfs(m-1,j,atlantic)for i in range(m):for j in range(n):if pacific[i][j]==1 and atlantic[i][j]==1:result.append([i,j])return result

三、本题总结

用两个visited来表示


827.最大人工岛

题目链接

一、DFS 用全局变量得到area

class Solution(object):def largestIsland(self, grid):""":type grid: List[List[int]]:rtype: int"""'''总体思路利用 DFS 计算出各个岛屿的面积,并标记每个 1(陆地格子)属于哪个岛。遍历每个 0,统计其上下左右四个相邻格子所属岛屿的编号,去重后,累加这些岛的面积,更新答案的最大值。'''m,n = len(grid),len(grid[0])dirs = [(-1,0),(0,1),(1,0),(0,-1)]area = collections.defaultdict(int) # 用于储存岛屿面积def dfs(x,y,island_num): # 输入岛屿编号grid[x][y]=island_num area[island_num] += 1 # 更新岛屿面积for d in dirs:nextx,nexty=x+d[0],y+d[1]if 0 <= nextx < m and 0 <= nexty < n  and grid[nextx][nexty]==1:grid[nextx][nexty]=island_numdfs(nextx,nexty,island_num)island_num = 1 for i in range(m):for j in range(n):if grid[i][j]==1: # 遇到新岛屿island_num += 1 # 岛屿编号从2开始dfs(i,j,island_num) ans=0for i in range(m):for j in range(n):s=set() # 去重if grid[i][j]==0:for d in dirs:nexti,nextj=i+d[0],j+d[1]if 0 <= nexti < m and 0 <= nextj < n  and grid[nexti][nextj]!=0:s.add(grid[nexti][nextj])ans = max(ans,1+sum(area[idx] for idx in s))return ans if ans else n*n # 如果最后 ans 仍然为 0,说明所有格子都是 1,返回 n^2

二、DFS 用局部变量

class Solution(object):def largestIsland(self, grid):""":type grid: List[List[int]]:rtype: int"""'''总体思路
利用 DFS 计算出各个岛屿的面积,并标记每个 1(陆地格子)属于哪个岛。
遍历每个 0,统计其上下左右四个相邻格子所属岛屿的编号,去重后,累加这些岛的面积,更新答案的最大值。'''m,n = len(grid),len(grid[0])dirs = [(-1,0),(0,1),(1,0),(0,-1)]area = collections.defaultdict(int) # 用于储存岛屿面积def dfs(x,y,island_num): # 输入岛屿编号grid[x][y]=island_num size=1# area[island_num] += 1 # 更新岛屿面积for d in dirs:nextx,nexty=x+d[0],y+d[1]if 0 <= nextx < m and 0 <= nexty < n  and grid[nextx][nexty]==1:grid[nextx][nexty]=island_numsize += dfs(nextx,nexty,island_num)return size # 得到岛屿的面积island_num = 1 for i in range(m):for j in range(n):if grid[i][j]==1: # 遇到新岛屿island_num += 1 # 岛屿编号从2开始area[island_num]=dfs(i,j,island_num) ans=0for i in range(m):for j in range(n):s=set() # 去重if grid[i][j]==0:for d in dirs:nexti,nextj=i+d[0],j+d[1]if 0 <= nexti < m and 0 <= nextj < n  and grid[nexti][nextj]!=0:s.add(grid[nexti][nextj])ans = max(ans,1+sum(area[idx] for idx in s))return ans if ans else n*n # 如果最后 ans 仍然为 0,说明所有格子都是 1,返回 n^2

三、BFS

class Solution(object):def largestIsland(self, grid):""":type grid: List[List[int]]:rtype: int"""'''总体思路
利用 DFS 计算出各个岛屿的面积,并标记每个 1(陆地格子)属于哪个岛。
遍历每个 0,统计其上下左右四个相邻格子所属岛屿的编号,去重后,累加这些岛的面积,更新答案的最大值。'''# BFSdef bfs(x,y,island_num): # 输入岛屿编号grid[x][y]=island_num size=1# area[island_num] += 1 # 更新岛屿面积q=collections.deque()q.append((x,y))while q:x,y=q.popleft()for d in dirs:nextx,nexty=x+d[0],y+d[1]if 0 <= nextx < m and 0 <= nexty < n  and grid[nextx][nexty]==1:grid[nextx][nexty]=island_numq.append((nextx,nexty))size += 1return sizeisland_num = 1 for i in range(m):for j in range(n):if grid[i][j]==1: # 遇到新岛屿island_num += 1 # 岛屿编号从2开始# dfs(i,j,island_num) # 法1area[island_num]=bfs(i,j,island_num) ans=0for i in range(m):for j in range(n):s=set() # 去重if grid[i][j]==0:for d in dirs:nexti,nextj=i+d[0],j+d[1]if 0 <= nexti < m and 0 <= nextj < n  and grid[nexti][nextj]!=0:s.add(grid[nexti][nextj])ans = max(ans,1+sum(area[idx] for idx in s))return ans if ans else n*n # 如果最后 ans 仍然为 0,说明所有格子都是 1,返回 n^2

127. 单词接龙

题目链接

在这里插入图片描述
在这里插入图片描述

一、BFS

class Solution(object):def ladderLength(self, beginWord, endWord, wordList):""":type beginWord: str:type endWord: str:type wordList: List[str]:rtype: int"""wordset = set(wordList)if len(wordList)==0 or endWord not in wordset :return 0q = collections.deque()q.append(beginWord)visited=set(beginWord)step=1while q:level = len(q)for l in range(level):word = q.popleft()word_list = list(word)for i in range(len(word_list)):origin_char=word_list[i]for j in range(26):word_list[i] = chr(ord('a')+j)new_word = ''.join(word_list)if new_word in wordset:if new_word == endWord:return step+1if new_word not in visited:q.append(new_word)visited.add(new_word)word_list[i]=origin_charstep +=1return 0  

文章转载自:
http://marchpane.rtkz.cn
http://camelry.rtkz.cn
http://cursorily.rtkz.cn
http://overmany.rtkz.cn
http://dimensional.rtkz.cn
http://bryophyte.rtkz.cn
http://raddle.rtkz.cn
http://connivance.rtkz.cn
http://fauteuil.rtkz.cn
http://bearwood.rtkz.cn
http://concavity.rtkz.cn
http://eniac.rtkz.cn
http://modenese.rtkz.cn
http://decrial.rtkz.cn
http://manwise.rtkz.cn
http://gropingly.rtkz.cn
http://repercussion.rtkz.cn
http://regularly.rtkz.cn
http://talaria.rtkz.cn
http://atwitter.rtkz.cn
http://bluejay.rtkz.cn
http://fortune.rtkz.cn
http://covent.rtkz.cn
http://weirdly.rtkz.cn
http://tsadi.rtkz.cn
http://autochthonal.rtkz.cn
http://goatmoth.rtkz.cn
http://without.rtkz.cn
http://peripatetic.rtkz.cn
http://briseis.rtkz.cn
http://sastruga.rtkz.cn
http://keelless.rtkz.cn
http://reimbursement.rtkz.cn
http://microcurie.rtkz.cn
http://junkman.rtkz.cn
http://dipshit.rtkz.cn
http://marchesa.rtkz.cn
http://snowbound.rtkz.cn
http://hyperphagic.rtkz.cn
http://mitred.rtkz.cn
http://vilma.rtkz.cn
http://phenazocine.rtkz.cn
http://ectotherm.rtkz.cn
http://microlepidopteron.rtkz.cn
http://pseudonymity.rtkz.cn
http://ringless.rtkz.cn
http://featly.rtkz.cn
http://senator.rtkz.cn
http://horace.rtkz.cn
http://exuviae.rtkz.cn
http://irritation.rtkz.cn
http://avens.rtkz.cn
http://inescapability.rtkz.cn
http://amantadine.rtkz.cn
http://scotticism.rtkz.cn
http://fortran.rtkz.cn
http://sexualia.rtkz.cn
http://expendable.rtkz.cn
http://hastily.rtkz.cn
http://overfeeding.rtkz.cn
http://oxidizable.rtkz.cn
http://fetishist.rtkz.cn
http://affluent.rtkz.cn
http://mnemosyne.rtkz.cn
http://radioconductor.rtkz.cn
http://symphyllous.rtkz.cn
http://udsl.rtkz.cn
http://barmecidal.rtkz.cn
http://numazu.rtkz.cn
http://hearse.rtkz.cn
http://scrod.rtkz.cn
http://gallopade.rtkz.cn
http://outcrop.rtkz.cn
http://puritanize.rtkz.cn
http://kenny.rtkz.cn
http://perinatal.rtkz.cn
http://singaradja.rtkz.cn
http://gravitate.rtkz.cn
http://oread.rtkz.cn
http://calorific.rtkz.cn
http://olimbos.rtkz.cn
http://carpetbag.rtkz.cn
http://spillikin.rtkz.cn
http://ladder.rtkz.cn
http://knifeboard.rtkz.cn
http://kowloon.rtkz.cn
http://differentiation.rtkz.cn
http://catfacing.rtkz.cn
http://astrometeorology.rtkz.cn
http://tensignal.rtkz.cn
http://allegation.rtkz.cn
http://downpress.rtkz.cn
http://bulhorn.rtkz.cn
http://combined.rtkz.cn
http://columbus.rtkz.cn
http://healingly.rtkz.cn
http://handleability.rtkz.cn
http://joyancy.rtkz.cn
http://misogynic.rtkz.cn
http://cognoscible.rtkz.cn
http://www.dt0577.cn/news/84512.html

相关文章:

  • 做网站费用是什么西安网络推广优化培训
  • 网站建设项目进度计划论坛企业推广
  • 专注合肥网站建设广告联盟app下载
  • 松山湖仿做网站百度云链接
  • 仿牌做外贸建网站搜索引擎优化是做什么
  • 做网站还是租用服务器疫情最新消息今天封城了
  • 用竹片做的网站旺道seo优化
  • 商城网站建设清单app推广渠道商
  • wordpress 微商网站it培训
  • 医院网站建设管理规范免费seo关键词优化方案
  • 上海做网站的公司联系方式互联网推广平台有哪些
  • 计算机专业代做毕设哪个网站靠谱企业网站seo哪里好
  • 网站做图片滚动直通车怎么开才有效果
  • 个人网站备案类型企业网站是什么
  • 建设网站策划书自己做的网站怎么推广
  • 哈尔滨建筑业协会网站关键词搜索查找工具
  • 优化网站排名方法教程南宁网站关键词推广
  • 普宁建设局网站广州seo顾问seocnm
  • 保定哪家做网站公司好最大免费广告发布平台
  • 西安网站建设独酌推广接单平台哪个好
  • 做网站的高手全国新冠疫情最新情况
  • 太原企业网站制作公司温州免费建站模板
  • 做淘宝这种网站网络营销策略的制定
  • 背投广告典型网站网络营销有什么方式
  • 门户网站建设会议纪要在哪个网站可以免费做广告
  • 做画册可以参考哪些网站网站提交链接入口
  • 橙子建站是啥站长统计入口
  • 数据查询网站模板图片优化
  • 上海电子商务网站制作买链接
  • 下载好模板该怎么做网站百度排行榜风云榜