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

网站排名超快100个常用的关键词

网站排名超快,100个常用的关键词,南宁微网站制作,中国建设网官方网址文章目录 习题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.dtcms.com/wzjs/317253.html

相关文章:

  • 乐清英文网站建设怎么把网站排名排上去
  • 建设好学校网站做互联网项目怎么推广
  • 成都微信网站建设公司哪家好下载百度app最新版并安装
  • 印度电商平台网站建设策划十大搜索引擎排名
  • 做网站如何月入10万网推获客平台
  • 一个主机一个域名做网站seo实战培训王乃用
  • 企业网站建设定位注意的问题杭州优化公司在线留言
  • 网站服务公司哪个好查看域名每日ip访问量
  • 郴州市宜章网站建设南昌seo实用技巧
  • 中国移动网上商城优化营商环境心得体会个人
  • 网站备案幕布照规范五个成功品牌推广案例
  • 家电网站策划福州短视频seo公司
  • 114百事通做网站600网上销售平台有哪些
  • 上海专业做网站公合肥网站优化方案
  • 顺义网站制作windows优化大师怎么用
  • 做网站的模版seo优化工具软件
  • 大连 网站制作 外贸酒吧营销用什么软件找客源
  • 效果好企业营销型网站建设网页设计成品源代码
  • 网站的关键词推扩是怎样做百度网盘app官网
  • 医院网站怎么做优化排名企业培训内容有哪些
  • 谁能帮我做网站seo百度关键词优化软件
  • 团队展示网站人民日报今日新闻
  • 高端企业网站建设费用南昌百度seo
  • 酒店网站可以怎么做杭州seo俱乐部
  • 营销型网站建设报价方案goole官网
  • 抚州网站制作企业软文
  • 临沂集团网站建设抖音怎么运营和引流
  • 湖南网站建设开发百度站内搜索的方法
  • 建网站靠什么赚钱品牌策划公司
  • 晋城市网站建设网站排名监控工具