1
只要返回入度为0的节点。
2
list<list<>>根据下标放该下标可以通向的地方,再根据深度遍历找到target,使用hashset来保证不会出现死循环。
3
dfs[i]遍历之后,回到当前i,需要删除list当前保存的值。list.remove
保证不会出现 0-1-3,0-1-3-2-3的重复情况。
4
将每个下标可以通向的点放入list>里面。找到通向最多(记作max)的那个下标。(可能有多个)然后遍历找secondMax,如果点可以通向刚刚的下标则-1,找到secondeMax.相加即可。
5
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210309205415438.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21teGds,size_16,color_FFFFFF,t_70
如果是二分图则,相邻的两个不在一个集合,可以给涂色,分为无色,绿色,红色。如果发现下一个该图的色和已有的色冲突则说明不是二分图。因为不一定是连通图所以需要对其每个未涂色点进行遍历。
我的解法,开始未考虑非连通图。
6.并查集
把每个格子看成一个节点 把所有相连的点联通,并计算差绝对值。然后放入并查集,进行排序,从小到大进行查询联通,直到加入第i个节点时第一个点和最后一个点变成联通的,就返回第i个节点的val。(因为是从小到大,所以必定这个是联通路上最大的)。
7
多源最大值,从一个点集找到任意另一个点集最小距离的最大值。上下左右任意扩散一步,进行标记。最后一个被标记的海洋就是最远的。