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

article/2025/7/16 12:05:27

题目: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]}
}

http://www.hkcw.cn/article/YQXtplFLgp.shtml

相关文章

中国外卖包装废弃物高精度网格图谱(Tif/Excel/Shp)

数据简介 今天我们分享的数据是中国外卖包装废弃物高分辨率网格数据集&#xff0c;该数据集包含中国2018年1平方公里范围内产生的外卖包装废弃物总量的栅格数据以及各城市详细的外卖包装废弃物核算结果表格&#xff0c;我们将中国区域的数据裁剪成各省以及各市的区域&#xff0…

每日Prompt:指尖做画

提示词 微缩景观&#xff0c;微距摄影&#xff0c;俯瞰角度&#xff0c;特写&#xff0c;硕大食指手指甲&#xff0c;一个小小的人正在做画&#xff0c;小人右手拿画笔&#xff0c;小人左手拿调色盘&#xff0c;在指甲上作画&#xff0c;画的是中国古代山水画&#xff0c;背景…

调用Gensim库训练Word2Vec模型

本文为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 一、Word2Vec是什么&#xff1f; 自然语言处理(NLP)是一种涉及到处理语言文本的计算机技术。在 NLP 中&#xff0c;最小的处理单位是词语&#xff0c;词语是语言文本的基本组成部分。词语组成句子&a…

【Java】你真的了解JVM吗?

类加载机制 JVM&#xff08;Java虚拟机&#xff09;中的类加载机制是指将Java类的字节码加载到内存中&#xff0c;并为其创建Class对象的过程。类加载机制的核心在于“类加载器”&#xff0c;它是负责加载类的组件。Java中的类加载机制主要包括以下几个步骤&#xff1a; 加载&…

JVM学习-内存结构(二)

一、堆 1.定义 2.堆内存溢出问题 1.演示 -Xmx设置堆大小 3.堆内存的诊断 3.1介绍 1&#xff0c;2都是命令行工具&#xff08;可直接在ideal运行时&#xff0c;在底下打开终端&#xff0c;输入命令&#xff09; 1可以拿到Java进程的进程ID&#xff0c;2 jmap只能查询某一个时…

JVM相关内容

jvm的跨平台&#xff0c;字节码的作用 jvm的跨平台 不同操作系统系统运行的JVM不一样&#xff0c;但度能够处理对应的字节码文件 字节码的作用 利用编译节省了运行的时候的效率 JVM整体结构 类加载子系统&#xff1a;用于加载不同的class&#xff08;字节码&#xff09;文…

Sqlite3数据库表内数据批量读取操作---sqlite3_stmt机制

0、引言 在前面两篇文章已经对数据环境搭建、数据批量写入库中进行了较为详细的讲解。因此&#xff0c;基于前两篇文章内容的基础上&#xff0c;本文主要从数据库中批量数据读取操作进行梳理讲解。 嵌入式数据库SQLite 3配置使用详细笔记教程_sqlite3-CSDN博客 SQLite 3 优化批…

官方指定Jmeter配置JVM堆内存方式

软件测试资料领取&#xff1a;[内部资源] 想拿年薪40W的软件测试人员&#xff0c;这份资料必须领取~ 软件测试面试刷题工具领取&#xff1a;软件测试面试刷题【800道面试题答案免费刷】 1.概述 在使用Jmeter做性能测试过程中&#xff0c;可能会应为默认设置的堆内存值较小出…

线上JVM OOM问题,如何排查和解决?

今天咱们来聊聊让无数 Java 开发者头疼的 JVM OOM&#xff08;Out Of Memory&#xff0c;内存溢出&#xff09;问题。在面试中&#xff0c;OOM 问题也是面试官的“心头好”&#xff0c;因为它能直接考察你对 JVM 的理解&#xff0c;以及你在实际问题面前的排查和解决能力。 一…

JVM常见线上问题:CPU 100%、内存泄露问题排查

一、CPU 100% 问题排查 1.1、找到 cpu 占有率最高的 java 进程号 使用命令: top -c 显示运行中的进程列表信息, shift + p 使列表按 cpu 使用率排序显示。 PID = 2227 的进程,cpu 使用率最高 1.2、根据进程号找到 cpu 占有率最高的线程号 使用命令: top -Hp {pid} ,同…

JVM 一文详解

目录 JVM 简介 JVM 中的内存区域划分 1. 堆&#xff08;一个进程只有一份 ------ 线程共享&#xff09; 2. 栈&#xff08;一个进程可以有 N 份 ------ 线程私有&#xff09; Java 虚拟机栈&#xff1a; 本机方法栈&#xff1a; 3. 程序计数器&#xff08;一个线程可以…

【JVM】关于JVM的内部原理你到底了解多少(八股文面经知识点)

前言 &#x1f31f;&#x1f31f;本期讲解关于HTTPS的重要的加密原理~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…

深入理解 JVM 的栈帧结构

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…

JVM 机制

目录 一、什么是 JVM&#xff1a; 二、JVM 的运行流程&#xff1a; 三、JVM 内存区域划分&#xff1a; 1、( 1 ) 程序计数器&#xff1a; 1、( 2 ) 元数据区&#xff1a; 1、( 3 ) 栈&#xff1a; 1、( 4 ) 堆&#xff1a; 四、类加载&#xff1a; 1、什么时候会触…

【JVM】类加载机制

文章目录 类加载机制类加载过程1. 加载2. 验证3. 准备4. 解析偏移量符号引用和直接引用 5. 初始化 类加载机制 类加载指的是&#xff0c;Java 进程运行的时候&#xff0c;需要把 .class 文件从硬盘读取到内存&#xff0c;并进行一些列的校验解析的过程&#xff08;程序要想执行…

【JVM】从零开始深度解析JVM

本篇博客给大家带来的是JVM的知识点, 重点在类加载和垃圾回收机制上. &#x1f40e;文章专栏: JavaEE初阶 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅&#x1f680; …

一篇文章带你解决笔试面试中的jvm问题

JVM内存区域划分 JVM启动的时候,会申请到一整个很大的内存区域.JVM是一个应用程序,要从操作系统里申请内存.JVM就根据需要,把空间分为几个部分,每个部分各自有不同的功能.具体划分如下: 分为&#xff1a;栈&#xff0c;堆&#xff0c;程序计数器&#xff0c;元数据区 Heap(堆):…

通义灵码2.5——基于编程智能体开发Wiki多功能搜索引擎

引言 在智能化浪潮重塑软件开发范式的今天&#xff0c;我借助开发一个基于编程智能体开发Wiki 多功能搜索引擎&#xff0c;深度体验了通义灵码2.5这一阿里云旗舰级AI编码助手&#xff0c;构建智能协作新范式。 该平台通过三大技术突破赋能开发全流程&#xff1a;基于编程智能…

基于SpringBoot的商家销售管理网站的设计与实现

湖南软件职业技术大学 本科毕业设计(论文) 设计(论文)题目 基于SpringBoot的商家销售管理网站的设计与实现 学生姓名 学生学号 所在学院 专业班级 校内指导教师 企业指导教师 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕…

各种噪声电流激励下电源PDN网络对系统时钟性能的影响

点击上面“蓝字”关注我们 电源分配是支持所有类型硅产品运行的基础设施的重要组成部分&#xff0c;但在设计过程中常被忽视。电源质量可能限制电路性能&#xff0c;并决定其工作可靠性。要真正解决电源分配问题&#xff0c;必须考虑包括芯片、封装和PCB在内的整个系统。 芯片…