2
* @param {number[][]} times8
let visited, edges, dijkastra_arr, min_heap;9
const MAX_VALUE = Math.pow(10, 6);11
const dijkastra = (source) => {12
visited[source] = true;14
let nei = edges[source] || [];15
// if(!nei.length)return;16
for (let i = 0; i < nei.length; i++) {17
let [src, dst, t] = nei[i];18
if (visited[dst]) continue;19
let time_till_src = dijkastra_arr[src];20
if (time_till_src >= MAX_VALUE) continue;21
let time_till_dst = time_till_src + t;22
dijkastra_arr[dst] = Math.min(dijkastra_arr[dst], time_till_dst);24
min_heap.sort((a, b) => {25
return dijkastra_arr[b] - dijkastra_arr[a];29
dijkastra_arr[min_heap[min_heap.length - 1]] < MAX_VALUE31
dijkastra(min_heap[min_heap.length - 1]);33
var networkDelayTime = function (times, n, k) {39
for (let i = 0; i < times.length; i++) {40
if (!edges[times[i][0]]) edges[times[i][0]] = [];41
edges[times[i][0]].push(times[i]);43
// console.log(edges,"edges")44
for (let i = 0; i <= n; i++) {46
//cz numbes are starting from One48
dijkastra_arr[i] = -1;52
dijkastra_arr[i] = MAX_VALUE;58
min_heap.sort((a, b) => {59
return dijkastra_arr[b] - dijkastra_arr[a];61
min_heap.pop(); //For removing zeroth entry;64
if (min_heap.length) return -1;65
for (let i = 0; i < dijkastra_arr.length; i++) {66
max_time = Math.max(dijkastra_arr[i], max_time);