Class Solution
-
- All Implemented Interfaces:
public final class Solution
3425 - Longest Special Path.
Hard
You are given an undirected tree rooted at node
0
withn
nodes numbered from0
ton - 1
, represented by a 2D arrayedges
of 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
result
of 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 -> 5
and0 -> 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
0
and1
, 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 - 1
edges[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
edges
represents a valid tree.