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

东莞建站公司快荐全网天下特别好seo文章是什么意思

东莞建站公司快荐全网天下特别好,seo文章是什么意思,免费签名设计,配置web服务器文章目录 习题2608.图中最短环2360.图中的最长环 求解一个图中的,环的长度是一类比较经典的问题,当然判断是否有环就是更加基础一点的问题啦 求解环的最大or最小长度,其实我们可以采用BFS或者DFS进行求解,下面我着重介绍这个无向…

文章目录

  • 习题
    • 2608.图中最短环
    • 2360.图中的最长环

  • 求解一个图中的,环的长度是一类比较经典的问题,当然判断是否有环就是更加基础一点的问题啦

  • 求解环的最大or最小长度,其实我们可以采用BFS或者DFS进行求解,下面我着重介绍这个无向图BFS有向图BFS求解,同时要注意时间复杂度的问题

  • 其实我们只需查看将要加入的节点的长度是否已经确定,如果已经确定的话,说明这个节点已经不是第一次访问了,那么就会出现一个环环的长度就是:dis[x] + dis[neigh] + 1

  • 无向图中,需要遍历每一个起点的情况,并且还不能在找到第一个环就返回

在这里插入图片描述

习题

2608.图中最短环

2608.图中最短环

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

  • 无向图的情况,需要遍历每一个起点
  • 观察时间复杂度,每次的bfs都是o(m),每一个节点都遍历,那就是 o(n*m)

from collections import dequeclass Solution:def findShortestCycle(self, n: int, edges: List[List[int]]) -> int:graph = [[] for _ in range(n)]for u, v in edges:graph[u].append(v)graph[v].append(u)min_cycle = float('inf')def bfs(start):queue = deque([(start, -1)])  # (node, parent)visited = {start: 0}  # 记录节点到start的距离ans = float("inf")while queue:x, fa = queue.popleft()for neigh in graph[x]:if neigh == fa:  # 跳过父节点continueif neigh not in visited:  # 未访问过,继续BFSvisited[neigh] = visited[x] + 1queue.append((neigh, x))else:  # 发现环!# 环长度 = x到start的距离 + neigh到start的距离 + 1cycle_len = visited[x] + visited[neigh] + 1ans = min(ans,cycle_len)return ansreturn float('inf')  # 未找到环for i in range(n):cycle_len = bfs(i)print(cycle_len)min_cycle = min(min_cycle, cycle_len)return min_cycle if min_cycle != float('inf') else -1

2360.图中的最长环

2360.图中的最长环

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

  • 有向图
  • 并且,注意到,一个节点只会最多有一个出边
  • 和上面的无向图的不同:如果还是采用这个BFS的话,也可以完成,但是时间复杂度会超时,但是下面展示一下DFS的解法,只用遍历一遍o(n)
class Solution:def longestCycle(self, edges: List[int]) -> int:# 注意题目的条件,至多只有一条有向边,每次回溯的时候,可以记录当前的路径上的点ans = -1 path = []n = len(edges)visited = [False]*ndef dfs(curi):nonlocal ansnext = edges[curi]if next != -1 :# 接下来还能行走,如果没被访问,就加入if not visited[next]:visited[next] = Truepath.append(next)dfs(next)else:# 被访问过了,需要判断是否在路径中if next in path:cal = path.index(next)ans = max(ans,len(path)-cal)returnfor i in range(n):if not visited[i]:path.clear()path.append(i)dfs(i)return ans
http://www.cadmedia.cn/news/7399.html

相关文章:

  • 汕头手机端建站模板线下推广方式
  • 一流的铁岭做网站公司搜索引擎营销的内容有哪些
  • 河南真正免费建站保定网站建设报价
  • 提供服务好的网站建设营销app
  • 广告设计公司创业计划书seo是什么地方
  • 宁波网站建设有限公司如何推销自己的产品
  • 西苑做网站公司有哪些搜索引擎
  • 网站系统分析的主要任务包括如何实现网站的快速排名
  • 怎么让网站被百度收录国外引擎搜索
  • 政府网站集约化建设讨论如何查看网站权重
  • wordpress图片模糊seo推广教程seo高级教程
  • 网页制作基础教程第2版葛艳玲新乡搜索引擎优化
  • 苏州国内网站建设公司大数据是干什么的
  • 网站建设需要哪些语言创建自己的网页
  • 网站有几种语言开发的企业营销战略
  • 加盟品牌网站建设推广软文营销案例
  • 太原网站优化教程篮网目前排名
  • 网站经营性备案多少钱seo百度刷排名
  • 泰安市委常委名单广州网站运营专注乐云seo
  • 网站建设带后台带微商城发广告去哪个平台
  • 太原贴吧天津搜狗seo推广
  • 建设网站要服务器谷歌 chrome 浏览器
  • 3g网站制作百度地图网页版进入
  • 建设公司名字seo需要掌握哪些技术
  • asp网站建设网页设计制作网站模板图片
  • 上海企业网站semi是什么意思
  • 济宁网站建设公司有哪些sem代运营
  • 如何使用天翼云主机建设网站北京seo优化排名推广
  • wordpress weixin已矣seo排名点击软件
  • 怎样做企业官方网站关键词你们都搜什么