leecode刷题总结--图

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://img-blog.csdnimg.cn/20210309205415438.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21teGds,size_16,color_FFFFFF,t_70
在这里插入图片描述
如果是二分图则,相邻的两个不在一个集合,可以给涂色,分为无色,绿色,红色。如果发现下一个该图的色和已有的色冲突则说明不是二分图。因为不一定是连通图所以需要对其每个未涂色点进行遍历。在这里插入图片描述
我的解法,开始未考虑非连通图。

6.并查集在这里插入图片描述

把每个格子看成一个节点 把所有相连的点联通,并计算差绝对值。然后放入并查集,进行排序,从小到大进行查询联通,直到加入第i个节点时第一个点和最后一个点变成联通的,就返回第i个节点的val。(因为是从小到大,所以必定这个是联通路上最大的)。

7

在这里插入图片描述
在这里插入图片描述
多源最大值,从一个点集找到任意另一个点集最小距离的最大值。上下左右任意扩散一步,进行标记。最后一个被标记的海洋就是最远的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值