Class Solution
-
- All Implemented Interfaces:
public final class Solution3515 - Shortest Path in a Weighted Tree.
Hard
You are given an integer
nand an undirected, weighted tree rooted at node 1 withnnodes numbered from 1 ton. This is represented by a 2D arrayedgesof lengthn - 1, where <code>edgesi = u<sub>i</sub>, v<sub>i</sub>, w<sub>i</sub></code> indicates an undirected edge from node <code>u<sub>i</sub></code> to <code>v<sub>i</sub></code> with weight <code>w<sub>i</sub></code>.You are also given a 2D integer array
queriesof lengthq, where eachqueries[i]is either:[1, u, v, w']– Update the weight of the edge between nodesuandvtow', where(u, v)is guaranteed to be an edge present inedges.[2, x]– Compute the shortest path distance from the root node 1 to nodex.
Return an integer array
answer, whereanswer[i]is the shortest path distance from node 1 toxfor the <code>i<sup>th</sup></code> query of[2, x].Example 1:
Input: n = 2, edges = [1,2,7], queries = [2,2,1,1,2,4,2,2]
Output: 7,4
Explanation:
Query
[2,2]: The shortest path from root node 1 to node 2 is 7.Query
[1,1,2,4]: The weight of edge(1,2)changes from 7 to 4.Query
[2,2]: The shortest path from root node 1 to node 2 is 4.
Example 2:
Input: n = 3, edges = [1,2,2,1,3,4], queries = [2,1,2,3,1,1,3,7,2,2,2,3]
Output: 0,4,2,7
Explanation:
Query
[2,1]: The shortest path from root node 1 to node 1 is 0.Query
[2,3]: The shortest path from root node 1 to node 3 is 4.Query
[1,1,3,7]: The weight of edge(1,3)changes from 4 to 7.Query
[2,2]: The shortest path from root node 1 to node 2 is 2.Query
[2,3]: The shortest path from root node 1 to node 3 is 7.
Example 3:
Input: n = 4, edges = [1,2,2,2,3,1,3,4,5], queries = [2,4,2,3,1,2,3,3,2,2,2,3]
Output: 8,3,2,5
Explanation:
Query
[2,4]: The shortest path from root node 1 to node 4 consists of edges(1,2),(2,3), and(3,4)with weights2 + 1 + 5 = 8.Query
[2,3]: The shortest path from root node 1 to node 3 consists of edges(1,2)and(2,3)with weights2 + 1 = 3.Query
[1,2,3,3]: The weight of edge(2,3)changes from 1 to 3.Query
[2,2]: The shortest path from root node 1 to node 2 is 2.Query
[2,3]: The shortest path from root node 1 to node 3 consists of edges(1,2)and(2,3)with updated weights2 + 3 = 5.
Constraints:
<code>1 <= n <= 10<sup>5</sup></code>
edges.length == n - 1<code>edgesi == u<sub>i</sub>, v<sub>i</sub>, w<sub>i</sub></code>
<code>1 <= u<sub>i</sub>, v<sub>i</sub><= n</code>
<code>1 <= w<sub>i</sub><= 10<sup>4</sup></code>
The input is generated such that
edgesrepresents a valid tree.<code>1 <= queries.length == q <= 10<sup>5</sup></code>
queries[i].length == 2or4
-
-
Constructor Summary
Constructors Constructor Description Solution()
-