当前位置:网站首页>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;
}
}
边栏推荐
- WEB渗透之SQL 注入
- C Expert Programming Chapter 1 C: Through the Fog of Time and Space 1.1 The Prehistoric Phase of the C Language
- (七)《数电》——CMOS与TTL门电路
- Spark practice questions + answers
- Day33 LeetCode
- 二分法中等 LeetCode6133. 分组的最大数量
- C Pitfalls and Defects Chapter 7 Portability Defects 7.11 An Example of a Portability Problem
- 牛血清白蛋白刺槐豆胶壳聚糖缓释纳米微球/多西紫杉醇的纳米微球DTX-DHA-BSA-NPs
- C pitfalls and pitfalls Chapter 8 Suggestions and answers 8.2 Answers
- 基于php在线音乐网站管理系统获取(php毕业设计)
猜你喜欢
随机推荐
Based on php Xiangxi tourism website management system acquisition (php graduation design)
【Jmeter常用断言组件】
P7215 [JOISC2020] 首都 题解
Popular explanation: what is a clinical prediction model
方舟:生存进化PVE模式和PVP模式
空间数据库开源路,超图+openGauss风起禹贡
方舟生存进化是什么游戏?好不好玩
How to encapsulate the cookie/localStorage sessionStorage hook?
ISC2022 HackingClub白帽峰会倒计时1天!最全议程正式公布!元宇宙集结,精彩绝伦!
数字图像处理 第十二章——目标识别
(七)《数电》——CMOS与TTL门电路
位运算简介
C Expert Programming Chapter 1 C: Through the Fog of Time and Space 1.1 The Prehistoric Phase of the C Language
pytest:开始使用
MySQL相关知识
C Pitfalls and Defects Chapter 7 Portability Defects 7.7 Truncation During Division
2022-08-01 第五小组 顾祥全 学习笔记 day25-枚举与泛型
Taobao's API to get the list of shipping addresses
树莓派的信息显示小屏幕,显示时间、IP地址、CPU信息、内存信息(c语言),四线的i2c通信,0.96寸oled屏幕
NFT的10种实际用途(NFT系统开发)