332 重新安排行程 (dfs 離散)

2021-10-23 21:47:11 字數 1416 閱讀 3925

重新安排行程

給定乙個機票的字串二維陣列 [from, to],子陣列中的兩個成員分別表示飛機出發和降落的機場地點,對該行程進行重新規劃排序。所有這些機票都屬於乙個從 jfk(甘迺迪國際機場)出發的先生,所以該行程必須從 jfk 開始。

說明:如果存在多種有效的行程,你可以按字元自然排序返回最小的行程組合。例如,行程 [「jfk」, 「lga」] 與 [「jfk」, 「lgb」] 相比就更小,排序更靠前

所有的機場都用三個大寫字母表示(機場**)。

假定所有機票至少存在一種合理的行程。

示例 1:

輸入: [[「muc」, 「lhr」], [「jfk」, 「muc」], [「sfo」, 「sjc」], [「lhr」, 「sfo」]]

輸出: [「jfk」, 「muc」, 「lhr」, 「sfo」, 「sjc」]

示例 2:

輸入: [[「jfk」,「sfo」],[「jfk」,「atl」],[「sfo」,「atl」],[「atl」,「jfk」],[「atl」,「sfo」]]

輸出: [「jfk」,「atl」,「jfk」,「sfo」,「atl」,「sfo」]

解釋: 另一種有效的行程是 [「jfk」,「sfo」,「atl」,「jfk」,「atl」,「sfo」]。但是它自然排序更大更靠後。

class

solution

} path.

push_back

(u);

}

vector

finditinerary

(vector>

& t)

sort

(city.

begin()

,city.

end())

; city.

erase

(unique

(city.

begin()

,city.

end())

,city.

end())

; sz=city.

size()

; unordered_mapint>mp;

for(

int i=

0;i) vectorint>>

g(sz,vector<

int>

(sz,0)

);for(

auto

&i:t)

dfs(mp[

"jfk"

],g)

;for

(auto i:path)

reverse

(res.

begin()

,res.

end())

;return res;}}

;

332 重新安排行程

給定乙個機票的字串二維陣列 from,to 子陣列中的兩個成員分別表示飛機出發和降落的機場地點,對該行程進行重新規劃排序。所有這些機票都屬於乙個從jfk 甘迺迪國際機場 出發的先生,所以該行程必須從 jfk 出發。說明 如果存在多種有效的行程,你可以按字元自然排序返回最小的行程組合。例如,行程 jf...

332 重新安排行程

題目描述 如果存在多種有效的行程,請你按字元自然排序返回最小的行程組合。例如,行程 jfk lga 與 jfk lgb 相比就更小,排序更靠前 所有的機場都用三個大寫字母表示 機場 假定所有機票至少存在一種合理的行程。所有的機票必須都用一次 且 只能用一次。示例 1 輸入 muc lhr jfk m...

332 重新安排行程

給定乙個機票的字串二維陣列 from,to 子陣列中的兩個成員分別表示飛機出發和降落的機場地點,對該行程進行重新規劃排序。所有這些機票都屬於乙個從 jfk 甘迺迪國際機場 出發的先生,所以該行程必須從 jfk 開始。說明 如果存在多種有效的行程,你可以按字元自然排序返回最小的行程組合。例如,行程 j...