Class Solution
-
- All Implemented Interfaces:
public final class Solution3425 - Longest Special Path.
Hard
You are given an undirected tree rooted at node
0withnnodes numbered from0ton - 1, represented by a 2D arrayedgesof lengthn - 1, where <code>edgesi = u<sub>i</sub>, v<sub>i</sub>, length<sub>i</sub></code> indicates an edge between nodes <code>u<sub>i</sub></code> and <code>v<sub>i</sub></code> with length <code>length<sub>i</sub></code>. You are also given an integer arraynums, wherenums[i]represents the value at nodei.A special path is defined as a downward path from an ancestor node to a descendant node such that all the values of the nodes in that path are unique.
Note that a path may start and end at the same node.
Return an array
resultof size 2, whereresult[0]is the length of the longest special path, andresult[1]is the minimum number of nodes in all possible longest special paths.Example 1:
Input: edges = [0,1,2,1,2,3,1,3,5,1,4,4,2,5,6], nums = 2,1,2,1,3,1
Output: 6,2
Explanation:
The longest special paths are
2 -> 5and0 -> 1 -> 4, both having a length of 6. The minimum number of nodes across all longest special paths is 2.Example 2:
Input: edges = [1,0,8], nums = 2,2
Output: 0,1
Explanation:
The longest special paths are
0and1, both having a length of 0. The minimum number of nodes across all longest special paths is 1.Constraints:
<code>2 <= n <= 5 * 10<sup>4</sup></code>
edges.length == n - 1edges[i].length == 3<code>0 <= u<sub>i</sub>, v<sub>i</sub>< n</code>
<code>1 <= length<sub>i</sub><= 10<sup>3</sup></code>
nums.length == n<code>0 <= numsi<= 5 * 10<sup>4</sup></code>
The input is generated such that
edgesrepresents a valid tree.