当前位置:网站首页>力扣周赛304 6135. 图中的最长环 内向基环树
力扣周赛304 6135. 图中的最长环 内向基环树
2022-08-01 07:53:00 【钰娘娘】
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 解释:图中没有任何环。提示:
n == edges.length2 <= n <= 1e5-1 <= edges[i] < nedges[i] != i来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-cycle-in-a-graph
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
做题结果
周赛失败,晚上复盘一下子就写出来了T T。本来想问问大佬,然后试一下就出来了
方法:模拟
单指针的图,最后都可以形成一个或多个类似上图的形状,多个外部线连到内部环

当我们从一个指针访问到重复节点的时候,可能得到上面红色线对应的结果,红色线对应的每个点都应该判重,打标记,后续在访问到红色位置访问过的节点时,直接结束
1. 访问到重复节点:记录当前时间戳和旧时间戳的差值结束,同时记录已访问点
2. 访问到非法节点(旧节点访问过的节点):直接结束,记录已访问点
class Solution {
public int longestCycle(int[] edges) {
int n = edges.length;
boolean[] visited = new boolean[n];
int ans = -1;
for(int i = 0; i < n; i++){
if(visited[i]) continue;
Map<Integer,Integer> used = new HashMap<>();
int pos = i;
int size = 0;
while (edges[pos]!=-1&&!used.containsKey(edges[pos])&&!visited[edges[pos]]){
++size;
pos = edges[pos];
used.put(pos,size);
}
if(edges[pos]!=-1&&!visited[edges[pos]]){
ans = Math.max(ans,size-used.get(edges[pos])+1);
}
for(Integer key:used.keySet()){
visited[key]=true;
}
}
return ans;
}
}
边栏推荐
- 自制一款远程控制软件——VeryControl
- Fist game copyright-free music download, League of Legends copyright-free music, can be used for video creation, live broadcast
- my creative day
- 并发编程13-JUC之CountDownLatch
- Delphi MDI appliction 文档最大化显示、去掉最大化最小化等按钮
- Flink SQL - client, how to deal with the source side and to increase the target, the SQL - client including mapping table and the JOB such as
- Golang:go模版引擎的使用
- C语言中编译时出现警告C4013(C语言不加函数原型产生的潜在错误)
- pytest接口自动化测试框架 | 单个/多个参数
- POJ2421道路建设题解
猜你喜欢

HoloView -- Tabular Datasets

企业数据虚拟化综合指南

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

Electromagnetic compatibility introductory tutorial (6) test project

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

【MySQL】操作表DML相关语句

拳头游戏免版权音乐下载,英雄联盟无版权音乐,可用于视频创作、直播

案例实践 --- Resnet经典卷积神经网络(Mindspore)

VoLTE基础学习系列 | 企业语音网简述

SAP ABAP ALV+SMARTFORS 表分页 报表打印程序
随机推荐
SaaS安全认证综合指南
GO error handling
The socket option
关于App不同方式更新的测试点归纳
三维坐标系距离
Pytest | skip module interface test automation framework
pytest接口自动化测试框架 | 单个/多个参数
Holoview--Introduction
special day to remember
app 自动化 打开app (二)
22 Grab the Seat 1 C.Grab the Seat (Geometry + Violence)
Flink SQL - client, how to deal with the source side and to increase the target, the SQL - client including mapping table and the JOB such as
Redis 3.2.3 crashed by signal: 11 服务宕机问题排查
聊一聊ICMP协议以及ping的过程
HoloView -- Tabular Datasets
C语言学习概览(三)
Golang:go静态文件处理
pytest接口自动化测试框架 | 集成Allure测试报告
【STM32】入门(一):环境搭建、编译、下载、运行
POJ2421道路建设题解

