图论第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

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

相关推荐
JIngJaneIL12 小时前
数码商城系统|电子|基于SprinBoot+vue的商城推荐系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·数码商城系统
鸽鸽程序猿12 小时前
【项目】【抽奖系统】活动创建
java·spring
铭哥的编程日记12 小时前
深入浅出蓝桥杯:算法基础概念与实战应用(一)基础算法(上)
算法·职场和发展·蓝桥杯
小年糕是糕手12 小时前
【数据结构】常见的排序算法 -- 选择排序
linux·数据结构·c++·算法·leetcode·蓝桥杯·排序算法
不平衡的叉叉树12 小时前
Mybatis常用动态SQL标签
java·mybatis
电子_咸鱼13 小时前
动态规划经典题解:单词拆分(LeetCode 139)
java·数据结构·python·算法·leetcode·线性回归·动态规划
李慕婉学姐13 小时前
【开题答辩过程】以《割草机器人工作管理系统的设计与开发》为例,不会开题答辩的可以进来看看
java·spring·机器人
青衫码上行13 小时前
【Java Web学习 | 第七篇】JavaScript(1) 基础知识1
java·开发语言·前端·javascript·学习
堕落年代13 小时前
Spring三级缓存通俗易懂讲解
java·spring·缓存
披着羊皮不是狼14 小时前
多用户博客系统搭建(1):表设计+登录注册接口
java·开发语言·springboot