LeetCode 332. 重新安排行程(欧拉路径)
1. 題目
給定一個(gè)機(jī)票的字符串二維數(shù)組 [from, to],子數(shù)組中的兩個(gè)成員分別表示飛機(jī)出發(fā)和降落的機(jī)場地點(diǎn),對該行程進(jìn)行重新規(guī)劃排序。
所有這些機(jī)票都屬于一個(gè)從JFK(肯尼迪國際機(jī)場)出發(fā)的先生,所以該行程必須從 JFK 出發(fā)。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/reconstruct-itinerary
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
可以看看:
了解一下數(shù)學(xué)中的歐拉路徑,你就能成為一筆畫小游戲的大神
歐拉路徑與歐拉回路
類似題目: LeetCode 5932. 合法重新排列數(shù)對(歐拉路徑)
歐拉回路的充要條件
無向圖:所有點(diǎn)的度數(shù)都為偶數(shù)
有向圖:所有點(diǎn)的入度==出度
歐拉路徑的充要條件
無向圖:除兩點(diǎn)(起點(diǎn)與終點(diǎn))外其余點(diǎn)的度數(shù)都為偶數(shù)
有向圖:除兩點(diǎn)(起點(diǎn) 入度+1=出度,終點(diǎn) 入度?1=出度)外,其余點(diǎn)的 入度==出度
- 以下代碼的思路如上圖
- 按照題意,對起點(diǎn)連接的點(diǎn)存在multiset(有序)中,從begin開始
- 不斷的遞歸,遞歸前,刪除邊
- 當(dāng)邊的個(gè)數(shù)為0時(shí),再把節(jié)點(diǎn)添加到答案中
- 最后答案逆序就是歐拉路徑
52 ms 14 MB
總結(jié)
以上是生活随笔為你收集整理的LeetCode 332. 重新安排行程(欧拉路径)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1290. 二进制链表
- 下一篇: LeetCode 1471. 数组中的