1. 程式人生 > >演算法題 :比較重量

演算法題 :比較重量

題目:小明陪小紅去看鑽石,他們從一堆鑽石中隨機抽取兩顆並比較她們的重量。這些鑽石的重量各不相同。在他們們比較了一段時間後,它們看中了兩顆鑽石g1和g2。現在請你根據之前比較的資訊判斷這兩顆鑽石的哪顆更重。給定兩顆鑽石的編號g1,g2,編號從1開始,同時給定關係陣列vector,其中元素為一些二元組,第一個元素為一次比較中較重的鑽石的編號,第二個元素為較輕的鑽石的編號。最後給定之前的比較次數n。請返回這兩顆鑽石的關係,若g1更重返回1,g2更重返回-1,無法判斷返回0。輸入資料保證合法,不會有矛盾情況出現。測試樣例:2,3,[[1,2],[2,4],[1,3],[4,3]],4返回: 1

根據陣列構建一個有向無環圖(因為確保了資料可信,所以不會有環)。出度是從重到輕。然後如果能找到一條從g1到g2的路徑就認為g1重;如果找到從g2到g1的路徑就認為g2重;一條都找不到,就返回無法判斷。搜尋方法是dfs