面试中的LCA问题

Mic*_*ael 3 algorithm least-common-ancestor

有时候我遇到的面试问题就像这样:"查找在树中的任何2个节点的公共父".我注意到他们也在谷歌,亚马逊等地提出了LCA问题.

正如维基百科所说, LCA可以通过从给定节点到根的路径的交集来找到,它需要O(H),其中H是树的高度.此外,还有更先进的算法可以在O(N)中处理树,并在O(1)中回答LCA查询.

我想知道访问者究竟想要了解候选人提出这个LCA问题的原因.路径交集的第一个算法似乎微不足道.他们是否希望候选人记住预处理算法?他们是否希望候选人能够即时发明这些算法和数据结构?

Dia*_*cus 9

他们希望看到你的成就.他们想看看你的想法,你如何解决问题,以及处理截止日期的压力.我想如果你因为已经知道解决方案而解决了问题,那么他们只会给你带来另一个问题.这不是他们想要的解决方案,而是你的大脑.