欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 图论第7天

图论第7天

2024/11/30 12:48:31 来源:https://blog.csdn.net/weixin_41902984/article/details/139484470  浏览:    关键词:图论第7天

今天去打了会羽毛球。最近还是有点累啊,今天尽量效率

1971. 寻找图中是否存在路径

第一步是先整init

第二步先把该关联的关联

第三步判断是否有路

class Solution {
private:int nMax = 200005;vector<int>father = vector<int>(nMax,0);void init(int num){for(int i = 0;i < num;i++){father[i] = i;}}int find(int x){return x == father[x] ? x : father[x] = find(father[x]);}bool isSame(int a,int b){a = find(a);b = find(b);return a == b;}void join(int a ,int b){a = find(a);b = find(b);if(a == b)return;father[b] = a;}
public:bool validPath(int n, vector<vector<int>>& edges, int source, int destination) {init(n);for(int i = 0;i < edges.size();i++){join(edges[i][0],edges[i][1]);}return isSame(source,destination);}
};

684.冗余连接

其实做的事就是不断的搭桥,直到哪个用不上,就return。

class Solution {
private:int nMax = 1005;vector<int>father = vector<int>(nMax,0);void init(){for(int i = 0;i < nMax;i++){father[i] = i;}}int find(int x){return x == father[x]? x : father[x] = find(father[x]);}bool isSame(int a , int b){a = find(a);b = find(b);return a == b;}void join(int a , int b){a = find(a);b = find(b);if(a == b)return;father[b] = a;}public:vector<int> findRedundantConnection(vector<vector<int>>& edges) {init();for(int i = 0; i < edges.size();i++){if(isSame(edges[i][0],edges[i][1]))return edges[i];else join(edges[i][0],edges[i][1]);}return {};}
};

685.冗余连接II

有点难的那种,今天有点晚啦,先洗澡去啦,后面补上。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com