[力扣题解] 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长度是边的个数,可不一定相等哦!

相关推荐
Young_Zn_Cu44 分钟前
LeetCode刷题记录(持续更新中)
算法·leetcode
天选之女wow1 小时前
【代码随想录算法训练营——Day31】贪心算法——56.合并区间、738.单调递增的数字、968.监控二叉树
算法·leetcode·贪心算法
lixinnnn.1 小时前
贪心:火烧赤壁
数据结构·c++·算法
小小前端_我自坚强1 小时前
前端算法相关详解
前端·算法
前端 贾公子2 小时前
《Vuejs设计与实现》第 5 章(非原始值响应式方案)下 Set 和 Map 的响应式代理
数据结构·算法
WWZZ20253 小时前
ORB_SLAM2原理及代码解析:SetPose() 函数
人工智能·opencv·算法·计算机视觉·机器人·自动驾驶
小马学嵌入式~3 小时前
堆排序原理与实现详解
开发语言·数据结构·学习·算法
青岛少儿编程-王老师3 小时前
CCF编程能力等级认证GESP—C++6级—20250927
java·c++·算法
一人の梅雨3 小时前
1688 拍立淘接口深度开发:从图像识别到供应链匹配的技术实现
人工智能·算法·计算机视觉
Miraitowa_cheems4 小时前
LeetCode算法日记 - Day 64: 岛屿的最大面积、被围绕的区域
java·算法·leetcode·决策树·职场和发展·深度优先·推荐算法