Skip to content

Commit ecdade3

Browse files
authored
Create 2065-maximum-path-quality-of-a-graph.js
1 parent eff4d7d commit ecdade3

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* @param {number[]} values
3+
* @param {number[][]} edges
4+
* @param {number} maxTime
5+
* @return {number}
6+
*/
7+
const maximalPathQuality = function(values, edges, maxTime) {
8+
let zeroMax = 0;
9+
let n = values.length;
10+
let ll = Array.from({length: n + 1}, () => [])
11+
for (let edge of edges) {
12+
let u = edge[0];
13+
let v = edge[1];
14+
let t = edge[2];
15+
ll[u].push([v, t]);
16+
ll[v].push([u, t]);
17+
}
18+
const visited = Array(n + 1).fill(false);
19+
dfs(0, 0, 0, maxTime, visited);
20+
return zeroMax;
21+
22+
function dfs(val, curNode, curTime, maxTime, visited) {
23+
if (curTime > maxTime) {
24+
return;
25+
}
26+
let before = visited[curNode];
27+
if (!visited[curNode]) {
28+
val += values[curNode];
29+
visited[curNode] = true;
30+
}
31+
if (curNode == 0) {
32+
zeroMax = Math.max(zeroMax, val);
33+
}
34+
for (let next of (ll[curNode] || [])) {
35+
dfs(val, next[0], curTime + next[1], maxTime, visited);
36+
}
37+
visited[curNode] = before;
38+
}
39+
};

0 commit comments

Comments
 (0)