一、笔记部分
思路:
1.一个需要前置的题目,所以去找前面的课程要求,直到找到前面相同的。深度搜索与广度搜索都可以,上一个用的是广度搜索,那么这次用深度搜索。 比如A需要B课程为基础,那么B肯定是在A的前面。
进行搜索的时候一定要确定状态有几种。访问过此点,没有访问过此点。
2.其中还需要判断是否符合总课程数。所以需要计算出个数。
3.因为dfs都要另外函数,所以不能用直接传入的数组,因为这个数组在dfs函数里不起作用,所以需要在外部设置一个二维数组。
所以深度优先搜索要把三件套都设置在外面。
1.深度优先搜索的三件套:1.新建数组 2.访问标记 3.有效结果
2.先把新建数组的框架搞起来
3.将每个基础的课延伸课压入
4.每个课作为基础课,开一直深度搜索
5.其中一个基础课进入dfs递归
6.判断是否为环
7.如果无效了直接返回即可了,节约时间。
8.当前这个基础课没有环,那么重置状态,下一个课来搜索这个课是可以被访问的。
二、图类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/113449001
三、各种类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112556249