当前位置:网站首页>golang刷leetcode:道路的最大总重要性
golang刷leetcode:道路的最大总重要性
2022-08-02 20:37:00 【用户9710217】
给你一个整数 n ,表示一个国家里的城市数目。城市编号为 0 到 n - 1 。
给你一个二维整数数组 roads ,其中 roads[i] = [ai, bi] 表示城市 ai 和 bi 之间有一条 双向 道路。
你需要给每个城市安排一个从 1 到 n 之间的整数值,且每个值只能被使用 一次 。道路的 重要性 定义为这条道路连接的两座城市数值 之和 。
请你返回在最优安排下,所有道路重要性 之和 最大 为多少。
示例 1:
输入:n = 5, roads = [[0,1],[1,2],[2,3],[0,2],[1,3],[2,4]]
输出:43
解释:上图展示了国家图和每个城市被安排的值 [2,4,5,3,1] 。
- 道路 (0,1) 重要性为 2 + 4 = 6 。
- 道路 (1,2) 重要性为 4 + 5 = 9 。
- 道路 (2,3) 重要性为 5 + 3 = 8 。
- 道路 (0,2) 重要性为 2 + 5 = 7 。
- 道路 (1,3) 重要性为 4 + 3 = 7 。
- 道路 (2,4) 重要性为 5 + 1 = 6 。
所有道路重要性之和为 6 + 9 + 8 + 7 + 7 + 6 = 43 。
可以证明,重要性之和不可能超过 43 。示例 2:
输入:n = 5, roads = [[0,3],[2,4],[1,3]]
输出:20
解释:上图展示了国家图和每个城市被安排的值 [4,3,2,5,1] 。
- 道路 (0,3) 重要性为 4 + 5 = 9 。
- 道路 (2,4) 重要性为 2 + 1 = 3 。
- 道路 (1,3) 重要性为 3 + 5 = 8 。
所有道路重要性之和为 9 + 3 + 8 = 20 。
可以证明,重要性之和不可能超过 20 。提示:
2 <= n <= 5 * 1041 <= roads.length <= 5 * 104roads[i].length == 20 <= ai, bi <= n - 1ai != bi- 没有重复道路。
解题思路:
1,本题的关键在于如何给每个节点安排值
2,如果要和最大,需要把值最大的节点计算更多次
3,因此我们统计每个节点的度
4,一个节点的值被计算的次数就是它的度
import("sort")
func maximumImportance(n int, roads [][]int) int64 {
adj:=make(map[int]int)
for _,r:=range roads{
adj[r[0]]++
adj[r[1]]++
}
arr:=make([]int,len(adj))
i:=0
for _,v:=range adj{
arr[i]=v
i++
}
sort.Ints(arr)
sum:=0
num:=n
for i:=len(arr)-1;i>=0;i--{
sum+=arr[i]*num
num--
}
return int64(sum)
}边栏推荐
猜你喜欢

信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
![[C题目]力扣142. 环形链表 II](/img/b0/1e92f0f178089fc12cf88072d28912.png)
[C题目]力扣142. 环形链表 II
快速构建电脑软件系统 、超好用经典的网页推荐汇总

A brief discussion on the transformation of .NET legacy applications

.NET如何快速比较两个byte数组是否相等

Electrical diagram of power supply system

【目标检测】YOLOv5:640与1280分辨率效果对比

callback prototype __proto__

李沐动手学深度学习V2-bert和代码实现
![[C题目]力扣138. 复制带随机指针的链表](/img/f6/75f6821343944ced9f1cdec8dffe5c.png)
[C题目]力扣138. 复制带随机指针的链表
随机推荐
信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
PLC working principle animation
The software testing process specification is what?Specific what to do?
解道8-编程技术5
"Weekly Translate Go" This time we have something different!-- "How to Code in Go" series launched
信息学奥赛一本通(1257:Knight Moves)
广东省数字经济发展指引 1.0之建成数据安全保障体系
信息学奥赛一本通(1260:【例9.4】拦截导弹(Noip1999))
Li Mu hands-on deep learning V2-BERT pre-training and code implementation
vscode如何能将输出从OUTPUT改为TERMINAL或者DebugConsole
ALV concept explanation
包管理工具Chocolate - Win10如何安装Chocolate工具、快速上手、进阶用法
框架设计:PC 端单页多页框架如何设计与落地
如何理解 swing 是非线程安全 (原创)
软件测试的流程规范有哪些?具体要怎么做?
Adobe官方清理工具Adobe Creative Cloud Cleaner Tool使用教程
2170. 使数组变成交替数组的最少操作数
Linphone 被叫方如何解析来电SIP消息中的自定义头消息
Day35 LeetCode
李沐动手学深度学习V2-BERT预训练和代码实现