如果有n个顶点具有不同于加泰罗尼亚数给出的BST数目的不同键。但是,如果某些元素被复制,我们如何计算BST的数量?
我天真地认为,如果n之间有k个相等的元素,那么我们就应该在k上除以加泰罗尼亚数!(k元素的排列)。但是如果我们在最简单的例子(BST建立在1,1,1上)上检查它,我们就会意识到这是错误的想法。
那么,当我们计算BST的数量时,我们应该如何考虑重复的键呢?
问题中的BST是什么:二叉树,其中左子键小于根键,右子键所有键均衡器或等于根键。
发布于 2015-11-22 13:36:08
重复的键对不同树的数目没有任何影响。每棵树都有一个不同的形状,所以你甚至不需要钥匙来区分它们。你可以把钥匙全部移开,而树仍然是不同的。
用简单的例子试试: 1,1,1。您仍然可以用以下键创建5个不同的BST:
1 1 1 1 1
/ / / \ \ \
1 1 1 1 1 1
/ \ / \
1 1 1 1为新的要求编辑:
如果左撇子必须严格地小于他们的父级,那么复制键就会形成一个链接列表,它的工作方式类似于一个节点,因为您不能在其中有任何左子节点。整个平等价值列表将只有一个形状,一个左子和一个右子:
1
/ \
0 1
\
1
\
2因此,在这种情况下,您只需减去重复键的数量。
对于具有M个重复的N个键,即N唯一的键,有一些加泰罗尼亚(N)的方法来建立树。
https://stackoverflow.com/questions/33854980
复制相似问题