LeetCode 拓扑排序题目以及要注意的点
207 Course schedule
210 course schedule 2
269 Alien dictionary
329 longest increasing path in a matrix
444 sequence reconstruction
1203 sort items by groups respecting dependencies
拓扑排序无关DFS/BFS 只要能做出来就行
都是高频题目
遇到这种题目,想一下:什么数据结构用的比较多?什么样的手法(技巧)用的比较多?有哪些需要 注意的点?
数据结构:HashMap(HashSet)用的比较多 经常用在图的存取和维护上(有向图就存一次,无向图存两个?)
这种题目的技巧就是:先存图,然后干该干的
技巧:
如何检测图中的环
用出度入度数组来控制一些东西(BFS)
用viisted来检测之前是不是走过(DFS)
图的表示可以用hashmap也可以用邻接矩阵来做
处度入度可以用数组或者用Hahsmap来做
总结:
对于题目中需要有排序的 比如说谁在谁前面我们知道 现在我们想要一条valid的路径什么什么之类的 大致上就是拓扑排序了,拓扑排序的话,用BFS DFS都可以 注意在此过程中需要维护的东西但是同时也要注意很多corner case,而且最开始的话 一定要想清楚应该如何去做,要有一个清醒的认识 corner case要敏感。总之这类题很考验一个人是不是有清醒的头脑和把一个复杂问题进行分析 并用代码实现,而且很好的处理那些corner case的问题。

浙公网安备 33010602011771号