当前位置: 首页 > news >正文

做网站用什么网最好网络游戏排行榜百度风云榜

做网站用什么网最好,网络游戏排行榜百度风云榜,种子搜索,jsp网站地图生成器Every day a Leetcode 题目来源:1971. 寻找图中是否存在路径 解法1:并查集 并查集介绍:并查集详解 代码: /** lc appleetcode.cn id1971 langcpp** [1971] 寻找图中是否存在路径*/// lc codestart class UnionFind {vector&…

Every day a Leetcode

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

解法1:并查集

并查集介绍:并查集详解

代码:

/** @lc app=leetcode.cn id=1971 lang=cpp** [1971] 寻找图中是否存在路径*/// @lc code=start
class UnionFind
{vector<int> father, size;public:UnionFind(int n) : father(n), size(n, 1){// iota函数可以把数组初始化为 0 到 n-1iota(father.begin(), father.end(), 0);}int find(int x){if (x == father[x])return x;elsereturn find(father[x]);}void connect(int p, int q){int fa_p = find(p), fa_q = find(q);if (fa_p != fa_q)father[fa_p] = fa_q;}bool isConnected(int p, int q){return find(p) == find(q);}
};class Solution
{
public:bool validPath(int n, vector<vector<int>> &edges, int source, int destination){UnionFind uf(n);for (vector<int> &edge : edges)uf.connect(edge[0], edge[1]);return uf.isConnected(source, destination);}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n+m×α(m)),其中 n 是图中的顶点数,m 是图中边的数目,α 是反阿克曼函数。并查集的初始化需要 O(n) 的时间,然后遍历 m 条边并执行 m 次合并操作,最后对 source 和 destination 执行一次查询操作,查询与合并的单次操作时间复杂度是 O(α(m)),因此合并与查询的时间复杂度是 O(m×α(m)),总时间复杂度是 O(n+m×α(m))。

空间复杂度:O(n),其中 n 是图中的顶点数。并查集需要 O(n) 的空间。

解法2:深度优先搜索

首先从顶点 source 开始遍历并进行递归搜索。搜索时每次访问一个顶点 vertex 时,如果 vertex 等于 destination 则直接返回,否则将该顶点设为已访问,并递归访问与 vertex 相邻且未访问的顶点 next。如果通过 next 的路径可以访问到 destination,此时直接返回 true,当访问完所有的邻接节点仍然没有访问到 destination,此时返回 false。

代码:

class Solution
{
public:bool dfs(int source, int destination, vector<vector<int>> &adj, vector<bool> &visited){if (source == destination){return true;}visited[source] = true;for (int next : adj[source]){if (!visited[next] && dfs(next, destination, adj, visited)){return true;}}return false;}bool validPath(int n, vector<vector<int>> &edges, int source, int destination){vector<vector<int>> adj(n);for (auto &edge : edges){int x = edge[0], y = edge[1];adj[x].emplace_back(y);adj[y].emplace_back(x);}vector<bool> visited(n, false);return dfs(source, destination, adj, visited);}
};

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n+m),其中 n 表示图中顶点的数目,m 表示图中边的数目。

空间复杂度:O(n+m),其中 n 表示图中顶点的数目,m 表示图中边的数目。空间复杂度主要取决于邻接顶点列表、记录每个顶点访问状态的数组和递归调用栈,邻接顶点列表需要 O(m+n) 的存储空间,记录每个顶点访问状态的数组和递归调用栈分别需要 O(n) 的空间。

http://www.hengruixuexiao.com/news/57075.html

相关文章:

  • 手机网站与pc网站同步百度网盘在线观看资源
  • 网站建设需解决问题搜索引擎技术基础
  • 国内互联网建站公司排名百度快快速排名
  • 网站提示宏霸屏seo服务
  • 素材网站模板核心关键词和长尾关键词
  • 怎么做网站兼容性测试产品推广文案100字
  • 青岛做网站的公司哪个比较好怎样在百度上做广告
  • 车培训网站建设域名批量查询
  • 如何改进网站企业网络营销策划
  • 高端医疗网站模板免费下载免费的舆情网站
  • 网站根目录 一级二级三级目录百度竞价排名广告定价鲜花
  • 怎么做手机网站搜索引擎营销推广方案
  • 金融网站模板免费下载小红书推广方式有哪些
  • 南京学校网站建设策划全网营销系统是干什么的
  • 温州论坛吧关键词优化策略有哪些
  • 关于做网站的策划书北京口碑最好的教育机构
  • 网站用户体验存在问题数据分析师需要学哪些课程
  • 分类信息网站开发报价sem是什么的英文缩写
  • 网站开发流程是什么邀请注册推广赚钱
  • 东莞企业营销型网站建设百度搜图片功能
  • 比较好的网站建设品牌升级杭州seo培训
  • 张家界做网站找哪家好温州seo推广外包
  • 工贸一体化企业建设电子商务网站的误区武汉推广服务
  • 那里做网站最好进入百度搜索网站
  • 哪家做网站的公司全球最牛的搜索引擎
  • 公司做网站应记入哪个会计科目企业网站seo点击软件
  • 网上做任务赚钱的网站市场推广计划
  • mac系统可以做数据库网站开发搜索引擎营销的原理
  • 做会员卡的网站在线竞价托管运营哪家好
  • wordpress国外主题破解宁波seo优化费用