每日一改 · 2026-10-26

来自《算法讲解059-必备-建图、链式前向星、拓扑排序》 · 手机上只能看题,答题回电脑
给定 n 个点、m 条有向边,求字典序最小的拓扑序。若图有环输出 -1。

输入:第一行 n m(1≤n≤2×10^5,0≤m≤2×10^5)。接下来 m 行每行 u v,表示边 u→v(1≤u,v≤n)。

输出:一行 n 个整数,字典序最小的拓扑序;有环输出 -1。

样例输入:
3 2
1 3
2 3

样例输出:
1 2 3

解释:1、2 入度为 0,先取较小的 1,再取 2,最后 3。
提示:Kahn 算法中,队列里同时有多个入度为 0 的点时,先取哪个会影响最终序列。 · 把普通队列换成能每次取出最小元素的结构,注意复杂度。