当前位置:网站首页>0DFS中等 LeetCode6134. 找到离给定两个节点最近的节点
0DFS中等 LeetCode6134. 找到离给定两个节点最近的节点
2022-08-01 21:16:00 【18阿鲁】
描述
给你一个 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分别遍历一次,记录到每个结点的距离,然后遍历每个结点,在node1和node2都能到达的结点中选择node1和node2到达该结点较大值的最小的结点。
注意距离从1开始这样node1,node2的距离不会是0,方便排除掉哪些两个结点不能达到的结点。
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;
}
}
边栏推荐
- sizeof的详细解说和与strlen的区别
- 如何封装 cookie/localStorage/sessionStorage hook?
- Transplant MQTT source code to STM32F407 development board
- C Expert Programming Chapter 1 C: Through the Fog of Time and Space 1.4 K&R C
- R语言 线性回归的有关方法
- C语言之字符串函数二
- Classification interface, Taobao classification details API
- 方舟:生存进化官服和私服区别
- 漏洞分析丨HEVD-0x6.UninitializedStackVariable[win7x86]
- Pytorch框架学习记录12——完整的模型训练套路
猜你喜欢
随机推荐
Interview Blitz 70: What are sticky packs and half packs?How to deal with it?
Shell编程之条件语句
idea实用快捷键合集——持续更新
JS hoisting: how to break the chain of Promise calls
Get started with Grafana in 15 minutes
网红驼背矫正产品真的管用吗?如何预防驼背?医生说要这样做
Telnet弱口令渗透测试
[Chinese tree tags - CTB]
LeetCode·每日一题·1374.生成每种字符都是奇数个的字符串·模拟
使用员工管理软件,解锁人力生产力新水平,提高人力资源团队灵活性
分类接口,淘宝分类详情 API
测试的意义并不是能找到全部的缺陷
附录A printf、varargs与stdarg A.1 printf函数族
Nacos 配置中心
Realize the superposition display analysis of DWG drawing with CAD in Cesium
kubernetes各名词缩写
Record the first PR to an open source project
附录A printf、varargs与stdarg A.2 使用varargs.h来实现可变参数列表
C专家编程 第1章 C:穿越时空的迷雾 1.3 标准I/O库和C预处理器
STAHL touch screen repair all-in-one display screen ET-316-TX-TFT common faults









