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

(LeetCode 每日一题)2359. 找到离给定两个节点最近的节点( 图)

题目:2359. 找到离给定两个节点最近的节点

在这里插入图片描述
在这里插入图片描述

思路:分别记录node1和node2到其他节点的距离d1、d2,然后找最小的值即可。时间复杂度0(n),细节看注释。

C++版本:

class Solution {
public:// 因为最多只会有一条出边,所以直接循环来遍历即可void solve(vector<int>& edges,int u,vector<int>& d){int dis=0;// 因为有环的存在,所以要判断是否是第一次遍历while(u>=0&&d[u]==INT_MAX){d[u]=dis;dis++;u=edges[u];}}int closestMeetingNode(vector<int>& edges, int node1, int node2) {int n=edges.size();// d1、d2分别记录node1和node2到其他节点的距离vector<int> d1(n+1,INT_MAX),d2(n+1,INT_MAX);solve(edges,node1,d1);solve(edges,node2,d2);// 维护最小值、及对应的下标idint mn=INT_MAX,id=-1;for(int i=0;i<=n;i++){int t=max(d1[i],d2[i]);if(mn>t){mn=t;id=i;}}return id;}
};

JAVA版本:

class Solution {void solve(int[] edges,int u,int[] d){int dis=0;while(u>=0&&d[u]==Integer.MAX_VALUE){d[u]=dis;dis++;u=edges[u];}}public int closestMeetingNode(int[] edges, int node1, int node2) {int n=edges.length;int[] d1=new int[n+1];int[] d2=new int[n+1];Arrays.fill(d1,Integer.MAX_VALUE);Arrays.fill(d2,Integer.MAX_VALUE);solve(edges,node1,d1);solve(edges,node2,d2);int mn=Integer.MAX_VALUE;int id=-1;for(int i=0;i<=n;i++){int t=Math.max(d1[i],d2[i]);if(mn>t){mn=t;id=i;}}return id;}
}

Go版本:

func closestMeetingNode(edges []int, node1 int, node2 int) int {n:=len(edges)d1:=make([]int,n+1)d2:=make([]int,n+1)for i:=range d1 {d1[i]=math.MaxInt32d2[i]=math.MaxInt32}solve(edges,node1,d1)solve(edges,node2,d2)mn:=math.MaxInt32id:=-1for i:=0;i<=n;i++ {t:=max(d1[i],d2[i])if mn>t {mn=tid=i}}return id
}func solve(edges []int,u int,d []int){dis:=0for u>=0 && d[u]==math.MaxInt32 {d[u]=disdis++u=edges[u]}
}

相关文章:

  • haproxy 搭建web群集
  • Flexbox + Grid 组合布局技术解析
  • 通用的防御框架,用于抵御(多模态)大型语言模型的越狱攻击
  • @Docker Compose 部署 Pushgateway
  • 相机--双目立体相机
  • 卓力达码盘:精密蚀刻技术赋能高精度运动控制
  • Bootstrap项目 - 个人作品与成就展示网站
  • mobile app 工具简要对比
  • UI自动化测试中的元素等待机制解析
  • es6+和css3新增的特性有哪些
  • 如何成为一名优秀的产品经理
  • 权威认证与质量保障:第三方检测在科技成果鉴定测试中的核心作用
  • 缓存穿透、缓存击穿、缓存雪崩目前记录(纯日记)
  • AgenticSeek: 100% 本地替代 Manus AI 的方案
  • 在线政治采购系统架构构建指南
  • React 项目中封装 Excel 导入导出组件:技术分享与实践
  • 24核32G,千兆共享:裸金属服务器的技术原理与优势
  • web前端使用xlsx和file-saver实现前端表格table数据导出Excel功能
  • 完整解析 Linux Kdump Crash Kernel 工作原理和实操步骤
  • 栈内行为分析
  • 在家做网站或ps挣钱接活/百度搜索风云排行榜
  • 网络服务器与个人计算机的区别/网络优化培训
  • h5设计是什么/杭州百家号优化
  • 免费做司考真题的网站/近期国际热点大事件
  • 瀑布流网站源码/社群运营的经典案例
  • 百度网盘怎么做网站/湖北seo公司