[力扣题解] 1971. 寻找图中是否存在路径

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

思路

并查集

代码

cpp 复制代码
class Solution {
private:
    int n = 200005;
    int father[200005] = {0};
    void init()
    {
        int i;
        for(i = 0; i < n; i++)
        {
            father[i] = i;
        }
    }

    int find(int u)
    {
        if(u == father[u])
        {
            return u;
        }
        else
        {
            return father[u] = find(father[u]);
        }
    }

    bool isSame(int u, int v)
    {
        u = find(u);
        v = find(v);
        return u == v;
    }

    // 加入 u -> v
    void join(int u, int v)
    {
        u = find(u);
        v = find(v);
        if(u == v)
        {
            return;
        }
        else
        {
            father[u] = v;
        }
    }


public:
    bool validPath(int n, vector<vector<int>>& edges, int source, int destination) {
        int i, u, v;
        init();
        for(i = 0; i < edges.size(); i++)
        {
            join(edges[i][0], edges[i][1]);
        }
        return isSame(source, destination);
    }
};

注意数组不要越界了,validPath函数里n是节点个数,edge长度是边的个数,可不一定相等哦!

相关推荐
Tiny番茄7 分钟前
LeetCode 93.复原IP地址 LeetCode 78.子集 LeetCode 90.子集II
算法·leetcode·职场和发展
SylviaW0810 分钟前
python-leetcode 69.最小栈
数据结构·算法·leetcode
飞川撸码11 分钟前
【LeetCode 热题100】搜索旋转排序数组(力扣33 / 81/ 153/154)(Go语言版)
数据结构·算法·leetcode·golang
阳洞洞12 分钟前
leetcode 162. Find Peak Element
leetcode·二分查找
知识漫步44 分钟前
代码随想录算法训练营第60期第四十二天打卡
算法
叒卮1 小时前
小白编程学习之巧解「消失的数字」
数据结构·学习·算法
噜噜噜噜鲁先森1 小时前
MVDR源码(可直接运行)
算法·matlab·信号处理·阵列信号处理·声源定位算法
felix_fang_xin1 小时前
FIR数字滤波器设计与实现
人工智能·算法
一匹电信狗2 小时前
【数据结构】队列的完整实现
c语言·数据结构·c++·算法·leetcode·排序算法·visual studio