当前位置:网站首页>leetcode:6135. 图中的最长环【内向基环树 + 最长环板子 + 时间戳】
leetcode:6135. 图中的最长环【内向基环树 + 最长环板子 + 时间戳】
2022-07-31 17:28:00 【白速龙王的回眸】
分析
每个点出度最多是1
所以是一个【弱化】的内向基环图
所有联通分量最多一个环
所有点最多一个环
利用时间戳的方式记录每个点上一次访问的时间
如果有重复访问并且起始时间在st后面,意味着是一个新的环
就记录入案中
同时更新时间戳,和这个点最近的时间戳即可
ac code
class Solution:
def longestCycle(self, edges: List[int]) -> int:
# 至多一个出边 -》弱化内向基环树
# 每个联通分量最多只有一个环
# 每个点最多只有一个环
# 时间戳 + 边遍历边改优化
n = len(edges)
time = [0] * n
clock, ans = 1, -1
# x 是起点
for x, t in enumerate(time):
if t: continue # 之前已经被动遍历过了
st = clock
while x >= 0:
if time[x]: # 二次遍历x
if time[x] >= st: # 找到一个新的环
ans = max(ans, clock - time[x])
break
time[x] = clock
clock += 1
x = edges[x]
return ans
总结
图论 + 最大环 + 内向基环 + 时间戳
边栏推荐
猜你喜欢
随机推荐
20.支持向量机—数学原理知识
Istio介绍
MySQL---子查询
[pytorch] pytorch automatic derivation, Tensor and Autograd
Intelligent bin (9) - vibration sensor (raspberries pie pico implementation)
INeuOS industrial Internet operating system, the equipment operational business and "low code" form development tools
TestCafe总结
The server encountered an internal error that prevented it from fulfilling this request的一种解决办法[通俗易懂]
【码蹄集新手村600题】通向公式与程序相结合
go记录之——slice
认识异常 (看完这篇你就懂了)
牛客网刷题(一)
淘宝/天猫获得淘口令真实url API
MySQL - single function
浅谈网络安全之算法安全
华为顶级工程师历时9年总结的“趣谈网络协议”PDF文档,太强了
[TypeScript]OOP
获取抖音视频详情 API
MySQL---单行函数
Golang 小数操作之判断几位小数点与四舍五入