当前位置:网站首页>0DFS Medium LeetCode6134. Find the closest node to the given two nodes
0DFS Medium LeetCode6134. Find the closest node to the given two nodes
2022-08-01 21:35:00 【18 Aru】
6134. Find the closest node to the given two nodes
描述
给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,每个节点 至多 有一条出边.
有向图用大小为 n 下标从 0 开始的数组 edges 表示,表示节点 i 有一条有向边指向 edges[i] .如果节点 i 没有出边,那么 edges[i] == -1 .
同时给你两个节点 node1 和 node2 .
请你返回一个从 node1 和 node2 都能到达节点的编号,使节点 node1 和节点 node2 到这个节点的距离 较大值最小化.如果有多个答案,请返回 最小 的节点编号.如果答案不存在,返回 -1 .
注意 edges 可能包含环.
提示:
n == edges.length
2 <= n <= 105
-1 <= edges[i] < n
edges[i] != i
0 <= node1, node2 < n
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-closest-node-to-given-two-nodes
著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处.
分析
可达性分析
Node1 和node2分别遍历一次,Record the distance to each node,Then iterate over each node,在node1和node2Select from the nodes that can be reachednode1和node2The smallest node that reaches the larger value of this node.
Note the distance from1开始这样node1,node2The distance will not be0,It is convenient to exclude which nodes cannot be reached by two nodes.
class Solution {
public int closestMeetingNode(int[] edges, int node1, int node2) {
int n = edges.length;
int[] len = new int[n];
int[] len2 = new int[n];
int i = node1, j = node2;
int l1 = 1;
int l2 = 1;
while (i != -1 && len[i] == 0) {
len[i] = l1;
l1++;
i = edges[i];
}
int ans = -1;
int max = n+2;
while (j != -1 && len2[j] == 0) {
len2[j] = l2;
l2++;
j = edges[j];
}
for (int k = 0; k < n; k++) {
if (len[k] != 0 && len2[k] != 0) {
int tmp = Math.max(len[k],len2[k]);
if (max > tmp) {
max = tmp;
ans = k;
}
}
}
return ans;
}
}
边栏推荐
- 深拷贝浅拷贝
- How to make the timer not execute when the page is minimized?
- C Pitfalls and Defects Chapter 5 Library Functions 5.5 Library Function Signal
- Interview Blitz 70: What are sticky packs and half packs?How to deal with it?
- 淘宝获取收货地址列表的 API
- 可视化——Superset使用
- C陷阱与缺陷 第7章 可移植性缺陷 7.7 除法运算时发生的截断
- ModuleNotFoundError: No module named ‘yaml‘
- 作业8.1 孤儿进程与僵尸进程
- ImportError: `save_weights` requires h5py.问题解决
猜你喜欢

【中文树库标记---CTB】

数字图像处理 第十二章——目标识别

左旋氧氟沙星/载纳米雄黄磁性/As2O3磁性Fe3O4/三氧化二砷白蛋白纳米球

可视化——Superset使用

NFT的10种实际用途(NFT系统开发)

Based on php online music website management system acquisition (php graduation design)

PyQt5 + MySQL5.8 【学生信息管理系统】【增删改查】

ISC2022 HackingClub白帽峰会倒计时1天!最全议程正式公布!元宇宙集结,精彩绝伦!

正则表达式

Unity Shader 常规光照模型代码整理
随机推荐
CS-NP白蛋白包覆壳聚糖纳米颗粒/人血清白蛋白-磷酸钙纳米颗粒无机复合材料
Transformer学习
ARFoundation入门教程U2-AR场景截图截屏
多商户商城系统功能拆解19讲-平台端发票管理
深拷贝浅拷贝
C陷阱与缺陷 第7章 可移植性缺陷 7.9 大小写转换
Scala practice questions + answers
C陷阱与缺陷 第7章 可移植性缺陷 7.6 内存位置0
C Pitfalls and Defects Chapter 7 Portability Defects 7.9 Case Conversion
ISC2022 HackingClub white hat summit countdown 1 day!Most comprehensive agenda formally announced!Yuan universe, wonderful!
C Expert Programming Chapter 1 C: Through the Fog of Time and Space 1.1 The Prehistoric Phase of the C Language
”sed“ shell脚本三剑客
左旋氧氟沙星/载纳米雄黄磁性/As2O3磁性Fe3O4/三氧化二砷白蛋白纳米球
C Pitfalls and Defects Chapter 7 Portability Defects 7.7 Truncation During Division
Record the first PR to an open source project
scikit-learn no moudule named six
C Pitfalls and Defects Chapter 5 Library Functions 5.5 Library Function Signal
Review Set/Map basics with these two hooks
2022牛客多校联赛第五场 题解
File operations of WEB penetration