Advertisement

Leetcode 207课程表 Leetcode 207课程表

阅读量:
在这里插入图片描述

心路历程解析

最初尝试采用并查集方法进行求解,但完成代码后发现存在逻辑缺陷,原因在于题目要求判断的是有向图是否存在环路,而并查集算法仅适用于无向图的环检测问题。
随后想到使用链表结构来处理该问题,将其转化为判断链表是否出现环的情况,因为链表具有方向性。然而这一思路同样不可行,原因是链表通常仅包含一个或两个指针,而题目中一个课程可能对应多个指针。

这道题的核心在于构建一个有向图,并进一步判断该图中是否存在环路。此前并未接触过此类问题,且感觉这类问题应属于某一特定类型,因此决定通过网络搜索获取相关解答。

网络上提供了两种主流解法,分别为拓扑排序与深度优先搜索(DFS)。
从拓扑排序的角度出发进行思考:
从深度优先搜索的思路着手:1、采用逆邻接表的方式建立图结构 2、对每个节点进行递归遍历

注意的点:

1、在编写并查集结构时,需特别注意find函数应返回self.find(self.father[x]),而非采用self.father(x)或self.find(x)的形式
2、链表结构中所包含的指针数目通常限定为一个或两个

全部评论 (0)

还没有任何评论哟~