Class Solution
-
- All Implemented Interfaces:
public final class Solution
3486 - Longest Special Path II.
Hard
You are given an undirected tree rooted at node
0
, withn
nodes numbered from0
ton - 1
. This is 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 in which all node values are distinct , except for at most one value that may appear twice.
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,1,1,2,3,1,3,1,2,4,6,4,7,2,3,5,2,3,6,5,6,8,3], nums = 1,1,0,3,1,2,1,1,0
Output: 9,3
Explanation:
In the image below, nodes are colored by their corresponding values in
nums
.The longest special paths are
1 -> 2 -> 4
and1 -> 3 -> 6 -> 8
, both having a length of 9. The minimum number of nodes across all longest special paths is 3.Example 2:
Input: edges = [1,0,3,0,2,4,0,3,5], nums = 1,1,0,2
Output: 5,2
Explanation:
The longest path is
0 -> 3
consisting of 2 nodes with a length of 5.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.