Leetcode 332 重新安排行程 C

2021-10-07 15:46:10 字數 1175 閱讀 3983

給定乙個機票的字串二維陣列 [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"]。但是它自然排序更大更靠後。

dfs深搜回溯

建立鄰接表,同時記錄那種航班已經使用過了,以避免重複使用。詳細過程見**

vector ans;

unordered_map> ticket;

//鄰接表

unordered_mapint>> use;

//記錄那個航班使用過

bool

dfs(string& now,

int begin,

int n)

else}}

return

false;}

vector

finditinerary

(vector>

& tickets)

string beginc =

"jfk"

; ans.

push_back

(beginc)

;//起始位置

dfs(beginc,

0,n)

;return ans;

}

Leetcode 332 重新安排行程

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

leetcode 332 重新安排行程

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

LeetCode 332 重新安排行程

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