Back to all solutions
#2492 - Minimum Score of a Path Between Two Cities
Problem Description
You are given a positive integer n representing n cities numbered from 1 to n. You are also given a 2D array roads where roads[i] = [ai, bi, distancei] indicates that there is a bidirectional road between cities ai and bi with a distance equal to distancei. The cities graph is not necessarily connected.
The score of a path between two cities is defined as the minimum distance of a road in this path.
Return the minimum possible score of a path between cities 1 and n.
Note:
- A path is a sequence of roads between two cities.
- It is allowed for a path to contain the same road multiple times, and you can visit cities 1 and n multiple times along the path.
- The test cases are generated such that there is at least one path between 1 and n.
Solution
/**
* @param {number} n
* @param {number[][]} roads
* @return {number}
*/
var minScore = function(n, roads) {
const graph = Array.from({ length: n + 1 }, () => []);
for (const [a, b, dist] of roads) {
graph[a].push([b, dist]);
graph[b].push([a, dist]);
}
const visited = new Set();
const queue = [1];
let result = Infinity;
while (queue.length) {
const city = queue.shift();
if (visited.has(city)) continue;
visited.add(city);
for (const [nextCity, dist] of graph[city]) {
result = Math.min(result, dist);
if (!visited.has(nextCity)) {
queue.push(nextCity);
}
}
}
return result;
};