我最近在亚马逊面试中遇到了一个问题,并想知道stackoverflow对此的看法。
问题如下:
输入:由邻接表表示的有向图
所需输出:此图是否具有循环,并且如果是,则这些循环是什么。 循环中的循环条件定义如下:图中存在2个循环C1和C2,它们都共享一个或多个边,则称它们为循环中的循环。
在上面的图中,可以看到有2个循环C->D->E->F->G->H->C和另一个循环表示为H->I->J->G->H。我们可以看到这2个循环具有共享边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遍历检测所有的循环,并一旦检测到就在哈希映射中维护它们的边缘。然后当发现另一个循环时,我再次将它们推入哈希表中。但这种方法被礼貌地拒绝了,他没有进一步讨论就继续面试下去了。之后我意识到找到所有的循环是一个难题,让我感到困惑。请问有人可以澄清吗?