golang力扣leetcode 2039.网络空闲的时刻

简介: golang力扣leetcode 2039.网络空闲的时刻

2039.网络空闲的时刻

2039.网络空闲的时刻

题解

本题就是求最远的一个点最后接收到消息+1的时间的多少,并且发收消息走的都是最短路

 那么本题的关键就是在求出最后一次发送消息的时间+来回路径长+1即可

 那么最后一次发送消息怎么算呢,假设来回长是d,重发间隔为p,那么最后发送消息的时间就是公式(d-1)/p * p,为什么是d-1呢,因为在收到消息的那一刻,是不重发消息的

 那么ans的公式就是(d-1)/p * p + d + 1,p是已知的,d通过最短路即可求出来

代码

func networkBecomesIdle(edges [][]int, patience []int) int {
  e := make([][]int, len(patience))
  for _, edge := range edges {
    u, v := edge[0], edge[1]
    e[u] = append(e[u], v)
    e[v] = append(e[v], u)
  }
  dist := make([]int, len(patience))
  for i := range dist {
    dist[i] = 0x3f3f3f3f
  }
  dist[0] = 0
  vis := make([]int, len(patience))
  queue := []int{0}
  for len(queue) > 0 {
    u := queue[0]
    queue = queue[1:]
    vis[u] = 0
    for _, v := range e[u] {
      if dist[v] > dist[u]+1 {
        dist[v] = dist[u] + 1
        if vis[v] == 0 {
          vis[v] = 1
          queue = append(queue, v)
        }
      }
    }
  }
  ans := 0
  for i := 1; i < len(patience); i++ {
    d, p := dist[i]*2, patience[i]
    ans = max(ans, (d-1)/p*p+d+1)
  }
  return ans
}
func max(i, j int) int {
  if i > j {
    return i
  }
  return j
}
目录
相关文章
|
2月前
|
程序员 C语言
【C语言】LeetCode(力扣)上经典题目
【C语言】LeetCode(力扣)上经典题目
|
2月前
|
索引
力扣(LeetCode)数据结构练习题(3)------链表
力扣(LeetCode)数据结构练习题(3)------链表
91 0
|
2月前
力扣(LeetCode)数据结构练习题(2)
力扣(LeetCode)数据结构练习题(2)
31 0
|
2月前
|
存储
力扣(LeetCode)数据结构练习题
力扣(LeetCode)数据结构练习题
56 0
|
5月前
2670.找出不同元素数目差数组-力扣(LeetCode)
2670.找出不同元素数目差数组-力扣(LeetCode)
36 0
|
5月前
|
索引
821.字符的最短距离-力扣(LeetCode)
821.字符的最短距离-力扣(LeetCode)
39 0
|
3天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
41 17
|
14天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
15天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
39 10
|
17天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
44 10