当前位置:网站首页>leetcode-6135:图中的最长环
leetcode-6135:图中的最长环
2022-08-01 07:50:00 【菊头蝙蝠】
leetcode-6135:图中的最长环
题目
题目连接
给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边。
图用一个大小为 n 下标从 0 开始的数组 edges 表示,节点 i 到节点 edges[i] 之间有一条有向边。如果节点 i 没有出边,那么 edges[i] == -1 。
请你返回图中的 最长 环,如果没有任何环,请返回 -1 。
一个环指的是起点和终点是 同一个 节点的路径。
示例 1:

输入:edges = [3,3,4,2,3]
输出去:3
解释:图中的最长环是:2 -> 4 -> 3 -> 2 。
这个环的长度为 3 ,所以返回 3 。
示例 2:

输入:edges = [2,-1,3,1]
输出:-1
解释:图中没有任何环。
解题
方法一:内向基环树找环+时间戳
class Solution {
public:
int longestCycle(vector<int>& edges) {
int n=edges.size();
vector<int> time(n,0);
int res=-1;
for(int i=0,clock=1;i<n;i++){
if(time[i]) continue;
for(int x=i,start_time=clock;x>=0;x=edges[x]){
if(time[x]){
if(time[x]>=start_time){
res=max(res,clock-time[x]);
}
break;
}
time[x]=clock++;
}
}
return res;
}
};
边栏推荐
- LabVIEW中局部变量和全局变量的分配
- 我说过无数遍了:从来没有一种技术是为灵活组合这个目标而设计的
- pytest interface automation testing framework | pass in parameter values in the form of function return values
- Json对象和Json字符串的区别
- R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:gtExtras包的pad_fn函数与gt::fmt函数一起用于填充包含数值的特定列、对数据列的数值进行十进制对齐(从小数点对齐)
- 最小生成树
- Golang:go获取url和表单属性值
- 七夕来袭——属于程序员的浪漫
- C语言学习概览(一)
- Data Analysis 6
猜你喜欢

图片无损压缩软件哪个好用:试试完全免费的JPG-C 图片批量修整压缩减肥工具吧 | 最新jpg批量修整工具下载

【HDLBits 刷题】Circuits(1)Combinational Logic

NIO programming

小程序全面屏手势配置案例

C语言中编译时出现警告C4013(C语言不加函数原型产生的潜在错误)

Image lossless compression software which works: try completely free JPG - C image batch finishing compression reduces weight tools | latest JPG batch dressing tools download

热修复技术可谓是百花齐放

小程序更多的手势事件(左右滑动、放大缩小、双击、长按)

华为深度学习课程第六、七章

Json对象和Json字符串的区别
随机推荐
special day to remember
扁平数组转树结构实现方式
XX市消防救援指挥中心实战指挥平台多链路聚合解决方案实例
巧妙利用unbuffer实时写入
Create, modify and delete tables
Holoview--Introduction
Data Analysis 6
Golang:go连接和使用mysql
将aof文件转换为命令waoffle安装和使用
Data Analysis 5
LeetCode240+312+394
JVM内存模型之深究模型特征
Monitor the width and height of the parent element, adapt to the size of the plug-in
类似 MS Project 的项目管理工具有哪些
七夕来袭——属于程序员的浪漫
小程序全面屏手势配置案例
zip打包目录所有文件(含隐藏文件/夹)
三维坐标系距离
走进音视频的世界——mp3封装格式
The socket option
