只有一次查询:
递归处理,时间O(N)
频繁查询:
打出所有两两节点组合的哈希表,方便查询,时间O(N*N)
M次查询:
哈希+并查集,时间O(N+M)
思想,从下向上合并节点,每次依据左子树合并根节点,再合并右子树的顺序,只对新加入的节点考虑是否有对应查询,有的话返回并查集合并后的公共祖先即可。
博客介绍了不同查询次数下节点公共祖先的查询算法。一次查询采用递归处理,时间复杂度为O(N);频繁查询则打出所有两两节点组合的哈希表,时间复杂度O(N*N);M次查询使用哈希+并查集,时间复杂度O(N+M),还说明了从下向上合并节点的思想。
只有一次查询:
递归处理,时间O(N)
频繁查询:
打出所有两两节点组合的哈希表,方便查询,时间O(N*N)
M次查询:
哈希+并查集,时间O(N+M)
思想,从下向上合并节点,每次依据左子树合并根节点,再合并右子树的顺序,只对新加入的节点考虑是否有对应查询,有的话返回并查集合并后的公共祖先即可。
1万+

被折叠的 条评论
为什么被折叠?