1
var findTheCity = function (n, edges, distanceThreshold) {2
const dp = Array.from({ length: n }, (_, i) => {3
return Array.from({ length: n }, (_, j) => (i == j ? 0 : Infinity));6
for (let edge of edges) {7
const [a, b, w] = edge;8
dp[a][b] = dp[b][a] = w;11
// k is intermediate node12
for (let k = 0; k < n; k++) {13
// fix distances from i to other nodes with k as intermediate14
for (let i = 0; i < n; i++) {15
if (i == k || dp[i][k] == Infinity) continue;16
for (let j = i + 1; j < n; j++) {17
dp[i][j] = dp[j][i] = Math.min(dp[i][j], dp[i][k] + dp[k][j]);24
for (let i = 0; i < n; i++) {26
for (let j = 0; j < n; j++) {28
if (dp[i][j] <= distanceThreshold) count++;30
if (count <= minCity) {