Re: [閒聊] 每日leetcode

作者: JIWP (JIWP)   2024-12-02 21:39:32
2097. Valid Arrangement of Pairs
思路:
用有向圖去解
先找start的那個點
如果有一個點的indegree-outdegree是-1,那他就是start
注意不一定會有這樣的點
如果每個點的outdegree-indegree都是0,那就隨便找個點當start
用path紀錄每個邊 path[i]為第i點可進入的其他點
從start開始dfs
從start開始走,走過的點要從path中移除
當有一個點j其path[j]沒有東西的話,他就是當前的最後一個點
就這樣一直找最後一個點
最後反過來組合成題目所需就好
golang code :
func validArrangement(pairs [][]int) [][]int {
indegree, path, ans := make(map[int]int), make(map[int][]int), make([][]int,
len(pairs))
start, idx := pairs[0][0], len(pairs)-1
for _, val := range pairs {
indegree[val[1]]++
indegree[val[0]]
作者: Furina (芙寧娜)   2024-12-02 21:41:00
大師
作者: oin1104 (是oin的說)   2024-12-02 21:44:00
大師 教我寫程式

Links booklink

Contact Us: admin [ a t ] ucptt.com