2277:树中最接近路径的节点(★★)
目录
题目
给定一个正整数 n,表示树中的节点数,编号从 0 到 n - 1 (含边界)。还给定一个长度为 n - 1 的二维整数数组 edges,其中 edges[i] = [node1i, node2i] 表示有一条 双向 边连接树中的 node1i 和 node2i。
给定一个长度为 m ,下标从 0 开始 的整数数组 query,其中 query[i] = [starti, endi, nodei] 意味着对于第 i 个查询,您的任务是从 starti 到 endi 的路径上找到 最接近 nodei 的节点。
返回长度为 m 的整数数组 answer,其中 answer[i] 是第 i 个查询的答案。
示例 1:
输入: n = 7, edges = [[0,1],[0,2],[0,3],[1,4],[2,5],[2,6]], query = [[5,3,4],[5,3,6]] 输出: [0,2] 解释: 节点 5 到节点 3 的路径由节点 5、2、0、3 组成。 节点 4 到节点 0 的距离为 2。 节点 0 是距离节点 4 最近的路径上的节点,因此第一个查询的答案是 0。 节点 6 到节点 2 的距离为 1。 节点 2 是距离节点 6 最近的路径上的节点,因此第二个查询的答案是 2。
示例 2:
输入: n = 3, edges = [[0,1],[1,2]], query = [[0,1,2]] 输出: [1] 解释: 从节点 0 到节点 1 的路径由节点 0,1 组成。 节点 2 到节点 1 的距离为 1。 节点 1 是距离节点 2 最近的路径上的节点,因此第一个查询的答案是 1。
示例 3:
输入: n = 3, edges = [[0,1],[1,2]], query = [[0,0,0]] 输出: [0] 解释: 节点 0 到节点 0 的路径由节点 0 组成。 因为 0 是路径上唯一的节点,所以第一个查询的答案是0。
提示:
1 <= n <= 1000edges.length == n - 1edges[i].length == 20 <= node1i, node2i <= n - 1node1i != node2i1 <= query.length <= 1000query[i].length == 30 <= starti, endi, nodei <= n - 1-
这个图是一个树。
相似问题:
分析
- 等价于找三条路径的交点
- 一种方法是分别求出 a=lca(x,y),b=lca(x,z),c=lca(y,z),a^b^c 即是交点
解答
|
|
16 ms