【发布时间】:2018-11-23 16:44:26
【问题描述】:
图中有 N 个节点,由 N-1 条边连接。从一个节点到任何其他节点恰好有 1 条最短路径。节点从 1 到 N 编号。给定 Q 个查询,它们告诉源节点和目标节点。在经过这些 Q 条路径后找到访问次数最多的节点。例如,说 Q=3 和 3 个查询是:
1 5
2 4
3 1
所以从节点 1 到节点 5,然后从节点 2 到节点 4,然后从节点 3 到节点 1。最后,找出 Q 次查询后访问次数最多的节点是什么。 找到每条路径并增加每个访问的节点计数是一种幼稚的方法。面试官让我优化一下。
【问题讨论】:
-
您是否已经给出了这些 Q 路径,或者打算查询尽可能少的路径来推断哪个节点被访问最多?结果是访问次数相同的一个节点还是所有节点?我想终端节点也算作访问过的?
-
只给出源节点和目标节点,不给出路径。在将所有这些源路径传输到目标路径之后,一些节点将具有最大访问次数。我们需要找到那个计数。
标签: graph tree least-common-ancestor