当前位置:网站首页>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;
}
}
边栏推荐
- 【力扣】字符串相乘
- 测试开发人均年薪30w+?软件测试工程师如何进阶拿到高薪?
- C Expert Programming Chapter 1 C: Through the Fog of Time and Space 1.3 The Standard I/O Library and the C Preprocessor
- 对C语言结构体内存对齐的理解
- Spark cluster construction
- C陷阱与缺陷 第7章 可移植性缺陷 7.6 内存位置0
- 0DFS中等 LeetCode6134. 找到离给定两个节点最近的节点
- HCIP---多生成树协议相关知识点
- 基于php在线音乐网站管理系统获取(php毕业设计)
- shell编程规范与变量
猜你喜欢
随机推荐
MySQL相关知识
ISC2022 HackingClub白帽峰会倒计时1天!最全议程正式公布!元宇宙集结,精彩绝伦!
How to choose Visibility, Display, and Opacity when interacting or animating
关于npm的那些事儿
(七)《数电》——CMOS与TTL门电路
深拷贝浅拷贝
Appendix A printf, varargs and stdarg A.3 stdarg.h ANSI version of varargs.h
基于php在线音乐网站管理系统获取(php毕业设计)
WEB 渗透之端口协议
树莓派的信息显示小屏幕,显示时间、IP地址、CPU信息、内存信息(c语言),四线的i2c通信,0.96寸oled屏幕
FusionGAN:A generative adversarial network for infrared and visible image fusion article study notes
Image fusion GANMcC study notes
C Pitfalls and pitfalls Appendix B Interview with Koenig and Moo
作业8.1 孤儿进程与僵尸进程
C Pitfalls and Defects Chapter 5 Library Functions 5.5 Library Function Signal
365天挑战LeetCode1000题——Day 046 生成每种字符都是奇数个的字符串 + 两数相加 + 有效的括号
牛血清白蛋白-葡聚糖-叶黄素纳米颗粒/半乳糖白蛋白磁性阿霉素纳米粒的制备
Popular explanation: what is a clinical prediction model
C Expert Programming Chapter 1 C: Through the Fog of Time and Space 1.1 The Prehistoric Phase of the C Language
AIDL通信








