news 2026/4/16 15:04:23

代码随想录 1971.寻找图中是否存在路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录 1971.寻找图中是否存在路径

方法一:并查集

class Solution { private int[] p; public boolean validPath(int n, int[][] edges, int source, int destination) { p = new int[n]; for(int i = 0;i < n;i++){ p[i] = i; } for(int[] e : edges){ p[find(e[0])] = find(e[1]); } return find(source) == find(destination); } private int find(int x){ if(p[x] != x){ //如果根不是自己(x) p[x] = find(p[x]); //根据数组下标一层一层向下找 } return p[x]; //返回根 } }

方法二:暴力BFS

class Solution { public boolean validPath(int n, int[][] edges, int source, int destination) { boolean[] used = new boolean[n]; //used[i] = true表示从source可以到达节点i used[source] = true; //起始节点默认可达 boolean newUsedFound = true; //标记本轮循环是否发现了新的可达节点 while(!used[destination] && newUsedFound){ //只要目标节点还未被访问并且还能发现新节点,就继续循环 newUsedFound = false; for(int i = edges.length - 1;i >= 0;i--){ //从后往前遍历类似于反向BFS,避免超时 //每次循环扫描所有边 if(used[edges[i][0]]){ //如果u可达v不可达,标记v可达 if(!used[edges[i][1]]){ newUsedFound = used[edges[i][1]] = true; } } else if(used[edges[i][1]]){ //如果v可达u不可达,标记u可达 newUsedFound = used[edges[i][0]] = true; } if(used[destination]){ //找到目标节点,提前结束 break; } } } return used[destination]; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:27:33

IoC容器和bean概述

目录 说明: 3 Spring IoC容器和Bean介绍 4 容器概述 4 配置元数据 5 XML 9 作为外部配置DSL 9 构建基于XML的配置元数据 10 使用容器 11 Bean概述 12 重写bean 13 命名Bean 13 在 Bean 定义之外别名一个 Bean 13 实例化bean 14 使用构造函数实例化 14 使用静态…

作者头像 李华
网站建设 2026/4/16 13:54:10

《Ascend C 进阶实战:高性能 Softmax 算子设计与数值稳定性优化》

《Ascend C 进阶实战&#xff1a;高性能 Softmax 算子设计与数值稳定性优化1. 引言&#xff1a;Softmax 的挑战Softmax 是分类任务中的核心算子&#xff0c;定义为&#xff1a;Softmax(xi​)∑j​exj​exi​​看似简单&#xff0c;但在 NPU 上高效实现却面临三大挑战&#xff1…

作者头像 李华
网站建设 2026/4/11 17:28:30

Jenkins部署零基础入门:AI帮你写出第一个Pipeline

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 为完全的新手生成一个最简单的Jenkins部署教程。要求&#xff1a;1. 从安装Jenkins开始&#xff1b;2. 创建一个简单的HTML项目部署流水线&#xff1b;3. 每个步骤都有详细解释&…

作者头像 李华
网站建设 2026/4/16 10:45:04

I2C通信

1.I2C通信简介简述&#xff1a;I2C只有一根通信线&#xff0c;数据在一条线上传输。同步&#xff0c;即由时钟线带领数据传输&#xff0c;可以在CPU处理其它事件时停止传输数据&#xff0c;处理完后再重新开始。2.I2C的硬件电路解释&#xff1a;1.SDA的控制权只有在从机发送数据…

作者头像 李华
网站建设 2026/4/4 0:52:36

Redis Lua vs 多命令:性能测试数据告诉你该用哪个

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Redis Lua脚本与普通命令的性能对比工具&#xff0c;自动生成测试场景&#xff1a;1) 计数器递增 2) 哈希字段批量更新 3) 集合交并操作。测量不同数据规模下&#xff08;1…

作者头像 李华
网站建设 2026/4/16 13:56:16

如何用大模型加速你的编程学习曲线

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Python学习助手应用&#xff0c;能够根据用户输入的学习目标&#xff08;如学习Python基础或掌握数据科学&#xff09;生成定制化的学习路径和代码示例。应用应包含交互式代…

作者头像 李华