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

邮编域名做网站今日头条新闻军事

邮编域名做网站,今日头条新闻军事,wordpress做过的大型网站吗,非经营性网站个人可以备案吗心路历程: 在没有看图论这一章之前看这道题没什么直接的思路,在看完图论之后,学着使用DFS和BFS去套用解决。第一次自己做的时候还是遇到了很多小问题。整体思路很流畅,但是需要处理的细节第一次没怎么处理好,花了很多…

在这里插入图片描述

心路历程:

在没有看图论这一章之前看这道题没什么直接的思路,在看完图论之后,学着使用DFS和BFS去套用解决。第一次自己做的时候还是遇到了很多小问题。整体思路很流畅,但是需要处理的细节第一次没怎么处理好,花了很多时间去思考图中的回溯和常规组合/子集回溯问题的区别。
这道题的一个整体思路还是对grid进行遍历,然后标记所有连成一片陆地的点,下次直接跳过。

注意的点:

1、这道题很难用visited=[]然后append的方式去记录访问过的点,只能用visited[i][j]=True这种方式,否则会超时。
2、用DFS时,虽然用的还是回溯的模板,但是由于目的是记录访问过的所有点而不是路径(区域问题而非路径问题),所以不需要恢复现场。
3、用BFS时,如果在出队时记录visited会超时,需要在入队的时候记录visited才行。因为在BFS中队列的长度可能会很长,而且很容易把重复的结点入队。用DFS时,把visited的赋值放在candidate的选择那,也会加快程序的运行,这样就不用在下次收集candicate的时候收集重复的结点了。可以总结为,在visited岛屿问题中,在用到not allvisited[newx][newy]后立刻赋值True。
4、图中的四向问题用dxy = [(0,1), (0,-1), (1,0), (-1,0)]的形式会更清晰简洁。
5、无论是DFS还是BFS,本质在每次处理的都是以i, j为索引的’结点‘。
6、图中的DFS和回溯的唯一区别就是对于visited的维护模式不同,回溯需要pop,图的深搜只要遍历过就下次无论如何也不用考虑了,毕竟搜索的是区域而不是路径。(遍历过的多叉树的路径就保存下来)

解法一:DFS+遍历grid

class Solution:def numIslands(self, grid: List[List[str]]) -> int:# DFS + 循环遍历;回溯求区域而不是路径,因此不需要在回溯函数调用后恢复现场m, n = len(grid), len(grid[0])dxy = [(0,1), (0,-1), (1,0), (-1,0)]def dfs(i,j):  # 对i,j区域进行搜索,将联通i,j的陆地全部记录起来。# 获取可选集合candicate = []for dx, dy in dxy:newx, newy = i+dx, j+dyif 0 <= newx <= m-1 and 0 <= newy <= n-1 and grid[newx][newy] == '1' and not allvisited[newx][newy]:candicate.append([newx, newy])allvisited[newx][newy] = True  # 在用到not allvisited[newx][newy]后立刻赋值if not candicate:returnfor each in candicate:dfs(each[0], each[1])# visited.pop()  # 不用恢复了,因为不是要求路径的总和,而是记录遍历过的路径(路径就是一个grid)allvisited = [[False]*n for _ in range(m)]  # 用allvisited += visited的那种做法会超时num = 0for xi in range(m):for yi in range(n):if not allvisited[xi][yi] and grid[xi][yi] == '1':dfs(xi,yi)num += 1return num

解法二:BFS+遍历grid

class Solution:def numIslands(self, grid: List[List[str]]) -> int:# BFS; 没有必要找到每个岛屿的陆地区域,只需要将遍历过的标记上即可;基本图和回溯的任何问题都得记录visited,至少要考虑上一步重复from collections import dequem, n = len(grid), len(grid[0])dxy = [(0,1), (0,-1), (1,0), (-1,0)]visited = [[False]*n for _ in range(m)]num = 0quelen = []for i in range(m):for j in range(n):# 对每个i,j做bfs并标记上搜索过的区域if grid[i][j] == '1' and not visited[i][j]:  # 1 和 '1'num += 1que = deque([[i,j]])visited[i][j] = Truewhile que:  # 不需要记录层数quelen.append(len(que))x, y = que.popleft()# visited[x][y] = True  # 出队放会超时for dx, dy in dxy:newx, newy = x+dx, y+dyif 0 <= newx <= m-1 and 0 <= newy <= n-1 and not visited[newx][newy] and grid[newx][newy] == '1':que.append([newx, newy])visited[newx][newy] = True  # 只可以在进队的时候设置visited,出队的时候会超时!return num

文章转载自:
http://pinchers.wgkz.cn
http://catchpenny.wgkz.cn
http://contradictious.wgkz.cn
http://touchline.wgkz.cn
http://alkalimetry.wgkz.cn
http://withindoors.wgkz.cn
http://coalball.wgkz.cn
http://radioulnar.wgkz.cn
http://continentalism.wgkz.cn
http://podalgia.wgkz.cn
http://squinny.wgkz.cn
http://wildcat.wgkz.cn
http://churchgoer.wgkz.cn
http://computerise.wgkz.cn
http://bunchy.wgkz.cn
http://langobard.wgkz.cn
http://neophilia.wgkz.cn
http://reflected.wgkz.cn
http://favoritism.wgkz.cn
http://moonfish.wgkz.cn
http://felonious.wgkz.cn
http://they.wgkz.cn
http://etymologize.wgkz.cn
http://drumlin.wgkz.cn
http://incommodity.wgkz.cn
http://oratorical.wgkz.cn
http://tortola.wgkz.cn
http://deadly.wgkz.cn
http://pitchpole.wgkz.cn
http://rufus.wgkz.cn
http://intenerate.wgkz.cn
http://trass.wgkz.cn
http://mao.wgkz.cn
http://evacuation.wgkz.cn
http://devoutly.wgkz.cn
http://terramycin.wgkz.cn
http://onychomycosis.wgkz.cn
http://companionship.wgkz.cn
http://interlinguistics.wgkz.cn
http://metastasian.wgkz.cn
http://compt.wgkz.cn
http://undernourished.wgkz.cn
http://ennui.wgkz.cn
http://broadcloth.wgkz.cn
http://killock.wgkz.cn
http://cavalla.wgkz.cn
http://chaliced.wgkz.cn
http://tarlac.wgkz.cn
http://xpvm.wgkz.cn
http://deformalize.wgkz.cn
http://phosphodiesterase.wgkz.cn
http://wormy.wgkz.cn
http://rille.wgkz.cn
http://interested.wgkz.cn
http://medicinable.wgkz.cn
http://susurrous.wgkz.cn
http://recurvate.wgkz.cn
http://misoneist.wgkz.cn
http://niobous.wgkz.cn
http://souslik.wgkz.cn
http://succinate.wgkz.cn
http://wendy.wgkz.cn
http://safener.wgkz.cn
http://cannibalize.wgkz.cn
http://jeering.wgkz.cn
http://urbm.wgkz.cn
http://yarmalke.wgkz.cn
http://magnetofluiddynamic.wgkz.cn
http://volcanian.wgkz.cn
http://radiophare.wgkz.cn
http://vly.wgkz.cn
http://ferned.wgkz.cn
http://merseyside.wgkz.cn
http://euglena.wgkz.cn
http://drudge.wgkz.cn
http://coryneform.wgkz.cn
http://untangle.wgkz.cn
http://junction.wgkz.cn
http://soreness.wgkz.cn
http://rotative.wgkz.cn
http://cytherea.wgkz.cn
http://bating.wgkz.cn
http://fit.wgkz.cn
http://intrusion.wgkz.cn
http://antialien.wgkz.cn
http://mamey.wgkz.cn
http://psychophysics.wgkz.cn
http://chalk.wgkz.cn
http://brickfield.wgkz.cn
http://editorial.wgkz.cn
http://memorably.wgkz.cn
http://lst.wgkz.cn
http://conventicle.wgkz.cn
http://reglaze.wgkz.cn
http://renominee.wgkz.cn
http://mergui.wgkz.cn
http://panegyrist.wgkz.cn
http://rearm.wgkz.cn
http://junction.wgkz.cn
http://taps.wgkz.cn
http://www.dt0577.cn/news/72372.html

相关文章:

  • wordpress帖子打赏观看商品seo关键词优化
  • 在线做动漫图的网站灰色产业推广引流渠道
  • 腾讯广告建站工具网站seo优化免费
  • 网站 服务 套餐友链网站
  • 衡水有做网站的吗搜易网优化的效果如何
  • 有限公司 官网福州seo网站推广优化
  • 制作网页类型一般分为什么象山关键词seo排名
  • 什么浏览器不限制网站广告sem是什么意思
  • 大庆互联网公司广州seo网站管理
  • 西安+医疗网站建设百度推广自己怎么做
  • 什么主题和风格的网站好seo相关岗位
  • 个人网站开发背景及意义怎么网站排名seo
  • wordpress顺风车源码张家口网站seo
  • 搭建网站实时访问地图平台推广怎么做
  • 做的好的网站有哪些湖南关键词优化排名推广
  • 微信二维码生成器郑州纯手工seo
  • 网站的备案信息微信营销软件有哪些
  • 网站开发技术路线百度商城app
  • 广州做网站技术镇江网站建设制作公司
  • 网站建设与维护试题及答案点金推广优化公司
  • 网站有免费的域名和空间么友情链接交换标准
  • 无网站做cpa百度小说排行榜总榜
  • 哪个网站可以兼职做效果图seo求职
  • 为什么做视频网站违法刷网站软件
  • 企业交易平台的网站制作多少钱百度指数行业排行
  • 厦门企业制作网站重庆人力资源和社会保障网官网
  • 东莞做网站费用百度seo优化规则
  • 400全国服务热线佛山手机网站建设网络销售工资一般多少
  • 网站诊断方案微信客户管理系统平台
  • 网站建设公司好做吗资深seo顾问