leetcode-6135:图中的最长环

简介: 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;
    }
};
相关文章
|
消息中间件 存储 运维
Rabbitmq消息大量堆积怎么办?
该文讨论了一个系统架构问题,主要涉及RabbitMQ在处理订单消息时遇到的性能瓶颈。首先,系统使用RabbitMQ是为了解耦和提高性能,前端创建订单后通过RabbitMQ发送消息给订单履约系统消费并执行后续操作。当订单流量激增时,消息堆积导致服务器压力增加。 排查解决方案: 1. 增加消费者以提高消费速度,但发现即使增加消费者,消息堆积问题仍未解决。 2. 分析消费者逻辑,发现调用库存系统接口可能导致处理速度慢。库存系统压力大,接口响应慢,加剧问题。 3. 实施清空堆积消息的策略,新建消费者快速消费消息并存储在表中,减轻服务器压力。待库存服务恢复后,再将消息推回RabbitMQ处理。
893 1
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之修改ddl能通过savepoint进行重启吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
算法 前端开发
图中的最长环
图中的最长环
149 0
|
安全 小程序 前端开发
基于JSP的校园社团平台设计与实现(论文+源码)_kaic
采用JSP框架并结合微信小程序将传统的管理系统进行改造,完成一套完整的对高校社团的管理以及服务平台,此外,在系统的基础上构建开放平台,致力于建设一个良好的校园开发者生态,为广大热爱开发的同学们提供资源以及平台,以此来促进同学们的综合素质能力的提升。在开发和设计过程中,我们致力于满足用户的需求,包括良好的交互体验、可靠的安全保障、便捷的操控和丰富的功能。我们已经在这些方面取得了巨大的成功,并将其应用到了校园社团的管理系统中。 关键词:JavaWeb;校园社团;管理系统;MYSQL;JSP
|
数据挖掘
《下一代云数据分析展望和产品重磅发布》电子版地址
下一代云数据分析展望和产品重磅发布
131 0
《下一代云数据分析展望和产品重磅发布》电子版地址
|
API Android开发
我的Android进阶之旅------&gt;android中service的onStartCommand()方法中intent为null的问题
       今天在维护公司的一个APP的时候,突然爆了空指针异常, Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.getBooleanExtra(java.lang.String, boolean)' on a null object reference        下面是报错的log。
2077 0
|
安全 网络协议
分享最全国内外公共DNS服务器地址
DNS,全称Domain Name System,即域名解析系统,帮助用户在互联网上寻找路径,它在互联网的作用是把域名转换成为网络可以识别的IP地址。目前国内电信运营商通过使用DNS劫持和DNS污染的方法,干扰用户正常上网,使得用户无法访问众多国外常用服务,因此今天介绍一些国内外的公共DNS服务器地址,供大家选择使用。 国外公共DNS服务器地址: Google Public
3425 0
umount.nfs: /mydata: device is busy解决办法
umount.nfs: /mydata: device is busy [root@localhost /]# umount /data/ umount.nfs: /mydata: device is busy 查看占用进程号: [root@localhost /]# fuser -m -v /data/                      用户     进程号 权限  
3415 0