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

wordpress搬家 后台错乱东莞网站seo优化托管

wordpress搬家 后台错乱,东莞网站seo优化托管,织梦安装网站后图片,武汉做网站的公司有哪些本文涉及知识点 C图论 打开打包代码的方法兼述单元测试 LeetCode2359. 找到离给定两个节点最近的节点 给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,每个节点 至多 有一条出边。 有向图用大小为 n 下标从 0 开始的数组 edges 表示&#xff0c…

本文涉及知识点

C++图论
打开打包代码的方法兼述单元测试

LeetCode2359. 找到离给定两个节点最近的节点

给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,每个节点 至多 有一条出边。
有向图用大小为 n 下标从 0 开始的数组 edges 表示,表示节点 i 有一条有向边指向 edges[i] 。如果节点 i 没有出边,那么 edges[i] == -1 。
同时给你两个节点 node1 和 node2 。
请你返回一个从 node1 和 node2 都能到达节点的编号,使节点 node1 和节点 node2 到这个节点的距离 较大值最小化。如果有多个答案,请返回 最小 的节点编号。如果答案不存在,返回 -1 。
注意 edges 可能包含环。
示例 1:
在这里插入图片描述

输入:edges = [2,2,3,-1], node1 = 0, node2 = 1
输出:2
解释:从节点 0 到节点 2 的距离为 1 ,从节点 1 到节点 2 的距离为 1 。
两个距离的较大值为 1 。我们无法得到一个比 1 更小的较大值,所以我们返回节点 2 。
示例 2:
在这里插入图片描述

输入:edges = [1,2,-1], node1 = 0, node2 = 2
输出:2
解释:节点 0 到节点 2 的距离为 2 ,节点 2 到它自己的距离为 0 。
两个距离的较大值为 2 。我们无法得到一个比 2 更小的较大值,所以我们返回节点 2 。

提示:

n == edges.length
2 <= n <= 105
-1 <= edges[i] < n
edges[i] != i
0 <= node1, node2 < n

图论

由于出度至多为1,所以无需DFS或BFS直接循环。环如果没处理好,会引起死循环。由于只有n个节点,我们循环n-1次就可以枚举所有情况。
i1=距离node1 i的节点,如果不存在为-1。i2=距离node2 i的节点,如果不存在为-1。
cnt[i1]++;cnt[i2]++;
如果cnt[i1]或cnt[i2] 等于2,则返回i。
如果没有返回i,返回-1。
错误
一,cnt1必须和cnt2分开。由于有环,node1(或node2)可能访问同一个节点多次。
二,i相同的时候,必须较小的节点。

代码

核心代码

class Solution {public:int closestMeetingNode(vector<int>& edges, int node1, int node2) {const int N = edges.size();vector<int> cnt1(N), cnt2(N);auto Vis = [&](vector<int>& cnt,int node) {if (-1 == node) { return false; }cnt[node]++;return cnt1[node] && cnt2[node];};auto Next = [&](int& cur) {if (-1 == cur) { return; }cur = edges[cur];};for (int i = 0,i1=node1,i2=node2; i < N; i++) {int ans = INT_MAX;if (Vis(cnt1, i1)) { ans = min(ans, i1); }if (Vis(cnt2,i2)) { ans = min(ans, i2); }if (INT_MAX != ans) { return ans; }Next(i1);Next(i2);}return -1;}};

单元测试

	vector<int> edges;int node1,  node2;TEST_METHOD(TestMethod11){edges = { 2, 2, 3, -1 }, node1 = 0, node2 = 1;auto res = Solution().closestMeetingNode(edges, node1, node2);AssertEx(2, res);}TEST_METHOD(TestMethod12){edges = { 1,2,-1 }, node1 = 0, node2 = 2;auto res = Solution().closestMeetingNode(edges, node1, node2);AssertEx(2, res);}TEST_METHOD(TestMethod13){edges = { 5,4,5,4,3,6,-1 }, node1 = 0, node2 = 1;auto res = Solution().closestMeetingNode(edges, node1, node2);AssertEx(-1, res);}TEST_METHOD(TestMethod14){edges = { 4,4,8,-1,9,8,4,4,1,1 }, node1 = 5, node2 = 6;auto res = Solution().closestMeetingNode(edges, node1, node2);AssertEx(1, res);}

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

http://www.hkea.cn/news/788149/

相关文章:

  • 扬中做网站的公司seo虚拟外链
  • 永川集团网站建设免费网站seo诊断
  • 国外 上海网站建设网络营销推广方式案例
  • 24手表网站网络技术推广服务
  • 鞍山网站制作推广游戏推广员判几年
  • 360如何做网站优化网页设计制作软件
  • 金华网站建设电话电商运营主要负责什么
  • 百度的官方网站游戏推广工作好做吗
  • 著名的深圳网站建设网页快照
  • 政务网站建设要求快速排名软件哪个好
  • 自己网站怎么做优化色盲和色弱的区别
  • 苏州建网站公司seo网络推广培训班
  • 福清市建设局网站石家庄学院
  • 找考卷做要去哪个网站中国国家培训网官网查询
  • 软件系统开发的大概步骤优化网站标题名词解释
  • 院校网站建设模板建站平台
  • 淘宝网站内搜索引擎优化怎么做广告推广平台网站有哪些
  • 大片播放网站国外免费推广网站有哪些
  • flash网站cms排名sem优化软件
  • 申请完域名怎么做网站百度链接提交
  • 驻马店市可以做网站的公司百度搜索竞价排名
  • 郑州市做网站吉林百度查关键词排名
  • 济宁网站建设seo抖音seo源码搭建
  • 茂名网站建设方案书简述seo和sem的区别
  • 江西网站做的好的企业文化百度指数在哪里看
  • 山东电商网站建设seo网站排名优化公司
  • 赤峰市做网站公司今日的最新消息
  • 上海最大的贸易公司seo网络推广机构
  • jsp 网站开发广告发布平台
  • b2c网站综合对比评价站长统计幸福宝