[英]How to detect cycle in a cycle in a Directed graph
我最近在亚马逊的采访中得到了一个问题,并想知道堆栈溢出的观点。
问题是这样的
输入:由邻接列表表示的有向图
需要输出:此图表是否在一个周期中有一个周期,如果是,那些周期是什么。 循环条件中的循环定义如下:图中有2个循环C1和C2,这两个循环共享一个或多个边,然后它们将被称为循环中的循环。
在上图中,可以看到有2个圆柱C-> D-> E-> F-> G-> H-> C,另一个循环表示为H-> I-> J-> G-> H ..我们可以看到这两个周期具有边G-> H作为共享边,因此我们可以将它们称为循环中的循环。
So tha answer will be yes there are cycles in a cycles and
the cyles are C->D->E->F->G->H->C and H->I->J->G->H
我在采访中的方法是检测所有周期(通过DFS遍历)并且一旦检测到在哈希映射中保持边缘。 然后当找到另一个循环时,我再次将它们推入哈希。 这被礼貌地拒绝了,他在采访中进一步讨论,没有进一步讨论。 然后我认为找到所有周期都是一个难题。 我很困惑 。 有人可以澄清一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.