題解 Leetcode 332 重新安排行程

2021-10-10 19:35:02 字數 1184 閱讀 4428

在有向圖中,對於確定起點求一條字典序最小的尤拉跡

hierholzer演算法求解尤拉跡

建圖加邊後對每個點的出邊進行排序

dfs,每次搜尋後標記當前邊不能再次通過

無路可走時將當前點加入棧中,回溯

將棧內的點逆序輸出即可

#include

const

int maxn =

1e7+50;

mapint>id;

map<

int,string>name;

vectoreuler_road;

vectorint,

int>

>e[maxn]

;bool vis[maxn]

;int tot =1;

bool

cmp(pair<

int,

int> a,pair<

int,

int> b)

return p.

size()

< q.

size()

;}void

dfs(

int u)

euler_road.

push_back

(name[u]);

}vectorres;

class

solution

if(id.

find

(y)== id.

end())

e[id[x]].

push_back

(make_pair

(id[y]

,++tot));

e[id[y]].

push_back

(make_pair

(id[x]

,++tot));

}for

(int i =

1; i <= n ; i ++

)int s =0;

for(

int i =

1; i <= n ; i++)}

dfs(s)

;for

(int i = euler_road.

size()

-1; i >=

0; i --

)return res;}}

;

Leetcode 332 重新安排行程

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

leetcode 332 重新安排行程

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

LeetCode 332 重新安排行程

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