图论第7天

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

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

第一步是先整init

第二步先把该关联的关联

第三步判断是否有路

cpp 复制代码
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。

cpp 复制代码
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

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

相关推荐
427724001 小时前
IDEA使用git不提示账号密码登录,而是输入token问题解决
java·git·intellij-idea
chengooooooo2 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
李长渊哦2 小时前
常用的 JVM 参数:配置与优化指南
java·jvm
计算机小白一个2 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
万事可爱^2 小时前
HDBSCAN:密度自适应的层次聚类算法解析与实践
算法·机器学习·数据挖掘·聚类·hdbscan
大数据追光猿4 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
Dream it possible!5 小时前
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)
c++·算法·leetcode
夏末秋也凉5 小时前
力扣-回溯-46 全排列
数据结构·算法·leetcode
南宫生5 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
柠石榴5 小时前
【练习】【回溯No.1】力扣 77. 组合
c++·算法·leetcode·回溯