当前位置:网站首页>Leicester Weekly 304 6135. The longest ring in the picture Inward base ring tree
Leicester Weekly 304 6135. The longest ring in the picture Inward base ring tree
2022-08-01 08:14:00 【Yu Niangniang】
6135. Longest loop in the figure
Give you a directed graph of
n
nodes, nodes numbered0
ton - 1
, where each node has at most one outgoing edge.The graph is represented by an array
edges
of sizen
with subscripts starting at 0, nodesi
toThere is a directed edge between the nodesedges[i]
.If nodei
has no outgoing edges, thenedges[i] == -1
.Please return the longest ring in the figure. If there is no ring, please return
-1
.A ring is a path that starts and ends at the same node.
Example 1:
Input:edges = [3,3,4,2,3]Output to:3Explanation: The longest cycle in the graph is: 2 -> 4 -> 3 -> 2 .The length of this ring is 3 , so 3 is returned.Example 2:
Input:edges = [2,-1,3,1]Output:-1Explanation: There are no cycles in the graph.Tip:
n == edges.length
2 <= n <= 1e5
-1 <= edges[i] < n
edges[i] != i
Source: LeetCode
Link: https://leetcode.cn/problems/longest-cycle-in-a-graph
The copyright belongs to LeetCode.For commercial reprints, please contact the official authorization, and for non-commercial reprints, please indicate the source.
Results of the questions
Failed in the weekly competition, and I wrote T T after reviewing the game at night.Originally wanted to ask the big guy, and then tried it out
Method: Simulate
A single-pointer graph can eventually form one or more shapes similar to the above, with multiple outer lines connected to the inner ring
When we visit a duplicate node from a pointer, we may get the result corresponding to the red line above. Each point corresponding to the red line should be judged and marked, and then when we visit the node that has been visited at the red position, end directly
1. Access to a duplicate node: end of recording the difference between the current timestamp and the old timestamp, and record the visited point at the same time
2. Visiting an illegal node (a node visited by the old node): end directly, record the visited point
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 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;}}
边栏推荐
猜你喜欢
various network protocols
配置我的kitty
云原生FAQ
LabVIEW中局部变量和全局变量的分配
The use of Golang: go template engine
【MySQL】操作表DML相关语句
Golang: go get url and form attribute value
Holoview--Introduction
How to use Photoshop to composite star trail photos, post-processing method of night sky star trail photos
如何使用Photoshop合成星轨照片,夜空星轨照片后期处理方法
随机推荐
Delphi MDI appliction 文档最大化显示、去掉最大化最小化等按钮
正则表达式符号
XX市消防救援指挥中心实战指挥平台多链路聚合解决方案实例
LabVIEW RT中的用户界面更新速度
自制一款远程控制软件——VeryControl
巧妙利用unbuffer实时写入
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
请问用flinksql写入数据到clickhouse需要引入什么依赖吗?
根据指定区域内容生成图片并进行分享总结
类似 MS Project 的项目管理工具有哪些
zip打包目录所有文件(含隐藏文件/夹)
C语言学习概览(一)
基于tika实现对文件类型进行判断
Microsoft Azure & NVIDIA IoT 开发者季 I|Azure IoT & NVIDIA Jetson 开发基础
微信小程序请求封装
nodetype中值1、2、3分别代表什么意思
Case practice --- Resnet classic convolutional neural network (Mindspore)
【Unity3D】相机
Golang:go开启web服务
Gethostbyname \ getaddrinfo DNS domain name IP address is not safe