簡體   English   中英

如何在有向圖中檢測循環中的循環

[英]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遍歷)並且一旦檢測到在哈希映射中保持邊緣。 然后當找到另一個循環時,我再次將它們推入哈希。 這被禮貌地拒絕了,他在采訪中進一步討論,沒有進一步討論。 然后我認為找到所有周期都是一個難題。 我很困惑 。 有人可以澄清一下。

  1. 找到所有周期
  2. 檢查每對循環邊緣之間的非空交點(如果交點不為空,則兩個循環是一個循環中的循環)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM