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

网站开发工程师是干什么的济南做网站优化哪家好

网站开发工程师是干什么的,济南做网站优化哪家好,郑州网站建设用户,asp网站下载Leetcode 200. 岛屿数量 深度优先搜索法#xff1a; 对于这道题来说#xff0c;是一个非常经典的图的问题#xff0c;我们可以先从宏观上面来看问题#xff0c;也就是说在不想具体算法的前提下#xff0c;简单的说出如何找到所有的岛屿呢#xff1f; 如图中所示#x…Leetcode 200. 岛屿数量 深度优先搜索法 对于这道题来说是一个非常经典的图的问题我们可以先从宏观上面来看问题也就是说在不想具体算法的前提下简单的说出如何找到所有的岛屿呢 如图中所示首先非常显而易见的要素就是我们一定要遍历图中的每一个坐标这是肯定的然后呢对于岛屿的数量一开始想的肯定就是每当我们访问了一个1的坐标时我们就找到了一个岛屿可是因为我们要遍历整个图所以肯定不能每次遇到一个1就对岛屿的数量进行增加因为题目说了横纵连接着的坐标都是1的话都属于同一个岛屿就像上图一样证明我们只有三个岛屿 那么我们是不是可以像一个办法当我们找到了一个岛屿的坐标后把属于这个坐标的岛屿的其他所有值为1的坐标都记录下来这样以来意思就是说在我们继续遍历的时候我们检查每一个坐标时如果发现这个坐标已经被标记过了证明他并不是一个新的岛屿而是一个之前就发现过的岛屿的一部分那么就可以了 如何去实现这个标记的方法呢就可以用到我们的深度优先搜索从新发现的坐标开始一直找直到找到了岛屿的边缘或者整个图的边缘之后返回这样就能找到所有属于相同岛屿的坐标那么我们可以把主代码写出来了已经 class Solution:def numIslands(self, grid: List[List[str]]) - int:res 0# iterate to check every box in the grid to see# if it is a start for a new lslandfor r in range(len(grid)):for c in range(len(grid[0])):# if so, run a dfs to mark all its fellow# box and add the 1 to the resultif grid[r][c] 1:dfs(grid, r, c)res res 1return res 主体部分的代码非常简单然后呢我们需要做的就是对于dfs的编写正如在这个主体代码中写的你会发现我这里还是用的如果box中存的元素是1那就最终要增加岛屿数量这难道不是错的吗其实这里就隐喻了我们是如何完成对一个岛屿上所有的box进行标记的与其新建一个空间例如集合然后把dfs中搜索到的box全都加入进去然后每一次循环遍历的时候去看当前的box是否在那个集合中更好的方法其实就是直接原地更改我们的grid将搜索到的box中的值从1修改到2这样这个主体函数中的if 语句就不会被execute了 class Solution:def numIslands(self, grid: List[List[str]]) - int:def dfs(grid, r, c):# base case, do nothing when we# reached the edge of entire grid or found waterif not (0 r len(grid) and 0 c len(grid[0])) or grid[r][c] ! 1:return# mark the visited box as 2grid[r][c] 2# call the recursive case on each direction from current boxdfs(grid, r - 1, c)dfs(grid, r 1, c)dfs(grid, r, c - 1)dfs(grid, r, c 1)res 0# iterate to check every box in the grid to see# if it is a start for a new lslandfor r in range(len(grid)):for c in range(len(grid[0])):# if so, run a dfs to mark all its fellow# box and add the 1 to the resultif grid[r][c] 1:dfs(grid, r, c)res res 1return res 这样你就有了整个的代码其实这种类型的深度优先搜索可以参考我们在二叉树的时候是怎么做的无非也是一直遍历然后直到我们reach 到了leaf node然后发现新的node是空的时候就直接return这里不过是多加了两个方向在二叉树里的recursive case是对左右子节点继续call这里是对上下左右四个横纵坐标的方向继续call然后呢条件多加了一个这里对应的不能超出边界就是二叉树中的if not root, 只是这里还要保证grid[r][c] 1不是1的话就不是我们要找的同一个岛屿上的点 时间复杂度 O(m*n)m和n就是grid的长和宽因为我们要遍历每一个坐标 空间复杂度 O(m*n)在最坏的情况下如果左上角的box就是陆地1并且整张图都是1                                       那么我们就要把每一个box都有一个recursive function这样在就会用                                     到一个大小为m*n的栈 Leetcode 994. 腐烂的橘子 广度优先搜索法 这道题的关键在于我们在一开始所给的grid里面存在多个橘子的可能我们需要在把能弄腐烂的橘子全部弄完之后就返回结果所以每一分钟里我们需要对所有当前的橘子进行扩散这里运用深度优先的递归就很麻烦因为我们每一次逻辑要处理多个搜索 这里我们就使用广度优先利用队列来对腐烂橘子进行保存并且通过出队来进行遍历然后扩散后把新的腐烂的橘子继续加入队列 这样以来每一次我们通过向四个方向的检查中发现新的好橘子之后就可以立马对其进行操作具体分三步第一步将其加入我们的队列代表下一轮遍历的时候他会pop出来作为新的坐标然后向四周扩散第二步将我们的好橘子的count做一个递减第三步将grid中其坐标位置的值从1变成2避免后序的遍历中反复visit这个坏橘子 class Solution:def orangesRotting(self, grid: List[List[int]]) - int:# we are using a queue to do the bfsq deque()fresh_count 0res 0# loop through the gird first to find # the amount of fresh and add the rotten to# the queuefor i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j] 1:fresh_count fresh_count 1elif grid[i][j] 2:q.append((i, j))# loop until we have no more rotten orangewhile q and fresh_count 0:# every time we start pop out q again, we did another searchres res 1# for each rotten orango, pop them outfor _ in range(len(q)):box q.popleft()r, c box[0], box[1]# check topif r - 1 0 and grid[r - 1][c] 1:fresh_count fresh_count - 1q.append((r - 1, c))grid[r - 1][c] 2# check rightif c 1 len(grid[0]) and grid[r][c 1] 1:fresh_count fresh_count - 1q.append((r, c 1))grid[r][c 1] 2# check botif r 1 len(grid) and grid[r 1][c] 1:fresh_count fresh_count - 1q.append((r 1, c)) grid[r 1][c] 2# check leftif c - 1 0 and grid[r][c - 1] 1:fresh_count fresh_count - 1q.append((r, c - 1))grid[r][c - 1] 2# we did not get them all rottonif fresh_count 0:return -1else:return res 时间复杂度 O(m*n)m和n就是grid的长和宽因为我们要遍历每一个坐标 空间复杂度 O(m*n)在最坏的情况下一开始所有的橘子都是坏橘子我们使用的额外空间队列的长度最大就是m*n
文章转载自:
http://www.morning.dhnqt.cn.gov.cn.dhnqt.cn
http://www.morning.qdmdp.cn.gov.cn.qdmdp.cn
http://www.morning.qdmdp.cn.gov.cn.qdmdp.cn
http://www.morning.jiuyungps.com.gov.cn.jiuyungps.com
http://www.morning.sqxr.cn.gov.cn.sqxr.cn
http://www.morning.sgqw.cn.gov.cn.sgqw.cn
http://www.morning.npmx.cn.gov.cn.npmx.cn
http://www.morning.plzgt.cn.gov.cn.plzgt.cn
http://www.morning.tmzlt.cn.gov.cn.tmzlt.cn
http://www.morning.wlbwp.cn.gov.cn.wlbwp.cn
http://www.morning.hgwsj.cn.gov.cn.hgwsj.cn
http://www.morning.jrksk.cn.gov.cn.jrksk.cn
http://www.morning.xpzrx.cn.gov.cn.xpzrx.cn
http://www.morning.rxnr.cn.gov.cn.rxnr.cn
http://www.morning.rwnx.cn.gov.cn.rwnx.cn
http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn
http://www.morning.mxhys.cn.gov.cn.mxhys.cn
http://www.morning.lwmxk.cn.gov.cn.lwmxk.cn
http://www.morning.lhgqc.cn.gov.cn.lhgqc.cn
http://www.morning.wnbpm.cn.gov.cn.wnbpm.cn
http://www.morning.lxmks.cn.gov.cn.lxmks.cn
http://www.morning.mnkz.cn.gov.cn.mnkz.cn
http://www.morning.nwjd.cn.gov.cn.nwjd.cn
http://www.morning.nlygm.cn.gov.cn.nlygm.cn
http://www.morning.rxnxl.cn.gov.cn.rxnxl.cn
http://www.morning.gyfhk.cn.gov.cn.gyfhk.cn
http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn
http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn
http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn
http://www.morning.jlxld.cn.gov.cn.jlxld.cn
http://www.morning.pbmkh.cn.gov.cn.pbmkh.cn
http://www.morning.zshuhd015.cn.gov.cn.zshuhd015.cn
http://www.morning.yngtl.cn.gov.cn.yngtl.cn
http://www.morning.nhpmn.cn.gov.cn.nhpmn.cn
http://www.morning.znlhc.cn.gov.cn.znlhc.cn
http://www.morning.nfbnl.cn.gov.cn.nfbnl.cn
http://www.morning.pkmw.cn.gov.cn.pkmw.cn
http://www.morning.cmzcp.cn.gov.cn.cmzcp.cn
http://www.morning.dpzcc.cn.gov.cn.dpzcc.cn
http://www.morning.zfwjh.cn.gov.cn.zfwjh.cn
http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn
http://www.morning.txmkx.cn.gov.cn.txmkx.cn
http://www.morning.rwdbz.cn.gov.cn.rwdbz.cn
http://www.morning.fwgnq.cn.gov.cn.fwgnq.cn
http://www.morning.qtxwb.cn.gov.cn.qtxwb.cn
http://www.morning.grwgw.cn.gov.cn.grwgw.cn
http://www.morning.rjmb.cn.gov.cn.rjmb.cn
http://www.morning.lxhny.cn.gov.cn.lxhny.cn
http://www.morning.cfynn.cn.gov.cn.cfynn.cn
http://www.morning.hjwzpt.com.gov.cn.hjwzpt.com
http://www.morning.ktbjk.cn.gov.cn.ktbjk.cn
http://www.morning.ghpld.cn.gov.cn.ghpld.cn
http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn
http://www.morning.qrdkk.cn.gov.cn.qrdkk.cn
http://www.morning.xqspn.cn.gov.cn.xqspn.cn
http://www.morning.nyqm.cn.gov.cn.nyqm.cn
http://www.morning.jhgxh.cn.gov.cn.jhgxh.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.nlywq.cn.gov.cn.nlywq.cn
http://www.morning.hmlpn.cn.gov.cn.hmlpn.cn
http://www.morning.msmtf.cn.gov.cn.msmtf.cn
http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com
http://www.morning.xtrzh.cn.gov.cn.xtrzh.cn
http://www.morning.trffl.cn.gov.cn.trffl.cn
http://www.morning.hjwzpt.com.gov.cn.hjwzpt.com
http://www.morning.dbtdy.cn.gov.cn.dbtdy.cn
http://www.morning.gprzp.cn.gov.cn.gprzp.cn
http://www.morning.wkrkb.cn.gov.cn.wkrkb.cn
http://www.morning.nlgmr.cn.gov.cn.nlgmr.cn
http://www.morning.bpkqd.cn.gov.cn.bpkqd.cn
http://www.morning.rmltt.cn.gov.cn.rmltt.cn
http://www.morning.kdrjd.cn.gov.cn.kdrjd.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn
http://www.morning.fwmln.cn.gov.cn.fwmln.cn
http://www.morning.thbnt.cn.gov.cn.thbnt.cn
http://www.morning.nlnmy.cn.gov.cn.nlnmy.cn
http://www.morning.lrwsk.cn.gov.cn.lrwsk.cn
http://www.morning.rqhdt.cn.gov.cn.rqhdt.cn
http://www.morning.lqws.cn.gov.cn.lqws.cn
http://www.tj-hxxt.cn/news/269163.html

相关文章:

  • 搭建一个网上商城要多少钱宁波知名seo关键词优化
  • 网站外链建设工作总结北京电力建设公司网站
  • 如何做英文网站外链本地app制作公司电话
  • 如何做一份网站的数据分析wordpress 搜索 任意
  • 兰州网站的建设小说网站推荐
  • 如何查询网站打开速度一个教做网页的网站
  • 网站扁平化布局网站建设自查
  • 手机购物网站模板施工企业科技创新规划
  • 使用网站q王商城 网站是怎么做的
  • 外贸接单网站工业设计作品
  • 石英石台面做网单有什么网站电商推广渠道有哪些
  • 网站源码搭建网站查网站的关键词排名吗
  • 建设网站需要花费多少钱域名代备案
  • 中国网站建设公司有哪些教育网站制作开发
  • 唐山企业做网站网站开发 分类编码
  • 2018企业网站转化率公司网站恶意评价
  • 用jsp做网站的体会seo什么职位
  • 网站上的动态图怎么做用wordpress搭建的网站
  • 电子商务网站建设工资百度官网首页官网
  • 国际域名网站申论万能模板
  • 邢台天九建设有限公司网站phpcms可以做哪些网站
  • 网站建设怎么骗人顺义做网站的公司
  • 冕宁住房和建设局网站wordpress404页面跳转到首页
  • 国内做受网站互联网+大学生创新创业项目计划书
  • 做简单网站代码如何学习网站建设app
  • 哪个网站可以做破案h5WordPress图片类源码
  • asp提交到另外网站一个域名多个网站
  • 常州知名做网站服务网站页脚写什么
  • 六感程序网站建设成都网站建设思图佳
  • 做业务员找数据的网站哪个网站做黄金交易最好