我最近在亚马逊的采访中得到了一个问题,并希望知道堆栈溢出的观点。
问题是
输入:由邻接列表
表示的有向图需要输出:此图表在一个周期中是否有一个周期,如果是,那么这些周期是什么。 循环条件中的循环定义如下:在图形和图形中有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遍历)并且一旦检测到在哈希映射中保持边缘。然后当找到另一个循环时,我再次将它们推入哈希。这被礼貌地拒绝了,他在采访中进一步讨论,没有进一步讨论。然后我认为找到所有周期都是一个难题。我很迷惑 。有人可以澄清一下。
答案 0 :(得分:1)