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