LeetCode 2285. Maximum Total Importance of Roads All In One
LeetCode 2285. Maximum Total Importance of Roads All In One
difficulty:
Medium
/ 难度:中等
LeetCode 2285 道路的重要性最大和
errors
solution
Map
// bidirectional 双向
function maximumImportance(n: number, roads: number[][]): number {
// Map 排序,连接最多的 city,赋值最大 n; 依次递减
let cities = new Map();
for(let arr of roads) {
for(let n of arr) {
if(cities.has(n)) {
cities.set(n, {n, value: 0, road: cities.get(n).road += 1});
} else {
cities.set(n, {n, value: 0, road: 1});
}
}
}
// 排序
const arr = [...cities.values()].sort((a, b) => a.road - b.road);
// 先使用 n 的最大值 ✅
let num = n;
for(let i = arr.length; i > 0; i--) {
arr[i - 1].value = num--;
}
for(let i = 0; i < arr.length; i++) {
const {n} = arr[i];
cities.set(n, arr[i]);
}
// 累加求和
let sum = 0;
for(let arr of roads) {
const [a, b] = arr;
sum += cities.get(a).value;
sum += cities.get(b).value;
}
return sum;
};
demos
// bidirectional 双向
function maximumImportance(n: number, roads: number[][]): number {
// Map 排序
// 连接最多的 city,赋值最大 n; 依次递减
// 累加求和 ()
let cities = new Map();
for(let arr of roads) {
for(let n of arr) {
if(cities.has(n)) {
cities.set(n, {n, value: 0, road: cities.get(n).road += 1});
} else {
cities.set(n, {n, value: 0, road: 1});
}
}
}
// 排序 bug
// [...cities.entries()].sort((a, b) => a[1].road - b[1].road);
const arr = [...cities.values()].sort((a, b) => a.road - b.road);
// console.log(`cities =`, cities)
// for(let i = 1; i <= n; i++) {
// arr[i - 1].value = i;
// }
// 先使用最大值
let num = n;
for(let i = arr.length; i > 0; i--) {
arr[i - 1].value = num--;
}
// let num = 1;
// for(let i = 0; i < arr.length; i++) {
// arr[i].value = num++;
// // arr[i].value = num;
// // num++;
// }
for(let i = 0; i < arr.length; i++) {
// const {n} = arr[i];
// cities.set(n, arr[i]);
const {n, value, road} = arr[i];
cities.set(n, {n, value, road});
}
// console.log(`cities =`, cities)
let sum = 0;
for(let arr of roads) {
const [a, b] = arr;
sum += cities.get(a).value;
sum += cities.get(b).value;
}
return sum;
};
/*
Wrong Answer
41 / 58 testcases passed
Input
n =
5
roads =
[[0,1]]
Output
3
Expected
9
*/
// // bidirectional 双向
// function maximumImportance(n: number, roads: number[][]): number {
// // Map 排序
// // 连接最多的 city,赋值最大 n; 依次递减
// // 累加求和
// // let cities = new Array(n).fill(0);
// let cities = new Array(n).fill(0).map((_, i) => ({n: i, value: 0, road: 0}));
// for(let arr of roads) {
// const [a, b] = arr;
// cities[a].road += 1;
// cities[b].road += 1;
// }
// cities.sort((a, b) => a.road - b.road);
// // cities.sort((a, b) => a.road - b.road > 0 ? -1 : 1);
// // console.log(`cities =`, cities)
// for(let i = 1; i <= n; i++) {
// cities[i - 1].value = i;
// }
// // console.log(`cities =`, cities)
// let sum = 0;
// for(let arr of roads) {
// const [a, b] = arr;
// sum += cities.find(obj => obj.n === a).value;
// sum += cities.find(obj => obj.n === b).value;
// }
// return sum;
// };
/*
您需要为每个城市分配一个从 1 到 n 的整数值,其中每个值只能使用一次。然后,道路的重要性被定义为它所连接的两个城市的价值之和。
以最佳方式分配值后,返回所有可能道路的最大总重要性。
*/
/*
Time Limit Exceeded
52 / 58 testcases passed
Last Executed Input
n =
40654
roads =
[[22984,20264],[20264,14202],[14202,8684],
...
9953,22132],[22132,22753],[22753,12166]]
*/
LeetCode 2285. 道路的最大总重要性
https://leetcode.cn/problems/maximum-total-importance-of-roads
refs
https://www.cnblogs.com/xgqfrms/p/14182098.html
©xgqfrms 2012-2025
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/18274794
未经授权禁止转载,违者必究!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2022-06-29 医学知识-急性心肌梗死 All In One
2022-06-29 Web Components 组件库 All In One
2021-06-29 垃圾 Apple Watch 无法解锁 iPhone
2021-06-29 世界知名游戏公司和工作室中英文对照表 All in One
2021-06-29 lexiangla 是什么意思 All in One
2021-06-29 vue & v-loading All In One
2020-06-29 p5.js