news 2026/5/12 23:31:08

LeetCode 网络延迟时间题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 网络延迟时间题解

LeetCode 网络延迟时间题解

题目描述

给定一个网络和信号源节点,计算信号到达所有其他节点所需的最长时间。

示例

输入:times = [[2,1,1],[2,3,1],[3,4,1]],n = 4,k = 2
输出:2

解题思路

方法:Dijkstra 算法

思路

  • 使用 Dijkstra 算法计算从源节点到所有其他节点的最短路径。
  • 返回最大最短路径。

复杂度分析

  • 时间复杂度:O(E log V)。
  • 空间复杂度:O(V)。

代码实现

import heapq def network_delay_time(times, n, k): graph = [[] for _ in range(n + 1)] for u, v, w in times: graph[u].append((v, w)) dist = [float('inf')] * (n + 1) dist[k] = 0 pq = [(0, k)] while pq: d, u = heapq.heappop(pq) if d > dist[u]: continue for v, w in graph[u]: if dist[u] + w < dist[v]: dist[v] = dist[u] + w heapq.heappush(pq, (dist[v], v)) max_dist = max(dist[1:]) return max_dist if max_dist != float('inf') else -1 # 测试 def test_network_delay_time(): times = [[2, 1, 1], [2, 3, 1], [3, 4, 1]] n, k = 4, 2 print(network_delay_time(times, n, k)) # 输出:2 if __name__ == "__main__": test_network_delay_time()

总结

网络延迟时间是 Dijkstra 算法的典型应用,计算信号到达所有节点的最长时间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 23:30:21

第四部分:持久化与防御规避

第九章&#xff1a;权限维持核心逻辑&#xff1a;权限维持&#xff08;Persistence&#xff09;是红队在目标网络中建立长期立足点的关键。本章重点在于利用系统合法机制进行驻留&#xff0c;确保在系统重启、密码更改或漏洞修复后&#xff0c;仍能重新获得访问权限。9.1 Windo…

作者头像 李华
网站建设 2026/5/12 23:22:30

从零构建AI聊天机器人:baibot开源项目架构解析与实战部署

1. 项目概述与核心价值 最近在开源社区里&#xff0c;一个名为 etkecc/baibot 的项目引起了我的注意。乍一看这个名字&#xff0c;你可能会联想到“AI”和“Bot”&#xff0c;没错&#xff0c;这正是一个围绕AI聊天机器人构建的开源项目。但和那些动辄需要复杂部署、庞大算力…

作者头像 李华
网站建设 2026/5/12 23:13:42

探秘C语言复合类型:结构体、枚举与联合体的核心机制与应用

1. 结构体&#xff1a;构建复杂数据模型的基石 结构体是C语言中最重要的复合数据类型之一&#xff0c;它允许我们将不同类型的数据组合成一个逻辑单元。想象一下&#xff0c;如果你要处理学生信息&#xff0c;需要同时记录姓名、学号和成绩。如果没有结构体&#xff0c;你可能需…

作者头像 李华