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

相关推荐
大大杰哥12 小时前
2026陕西省ICPC省赛补题(前六题)
c++·算法
Brilliantwxx12 小时前
【C++】 继承与多态(上)
开发语言·c++·笔记·算法
05候补工程师12 小时前
【线性代数】核心考点:二次型、矩阵三大关系综合与正定矩阵判别法
笔记·线性代数·考研·算法·矩阵
亅-丿-丶丿丶一l一丶-/^n12 小时前
RLHF|PPO算法原理(一)
算法·自然语言处理
ʚ希希ɞ ྀ12 小时前
打家劫舍----背包dp
数据结构·算法·leetcode
兰令水12 小时前
topcode【随机算法题】【2026.5.17打卡-java版本】
java·算法·leetcode
吃好睡好便好12 小时前
在Matlab中绘制柱面图
开发语言·学习·算法·matlab
沐怡旸12 小时前
彻底告别解析崩溃:深入解析大模型 Structured Outputs(结构化输出)技术
算法
giszz12 小时前
量子算法简化解析:肖尔算法与格罗弗算法核心原理
算法·量子计算
熬夜敲代码的猫13 小时前
教你如何使用set和map
c++·算法