美团的两道算法题
前天去美团面试,一面和二面问了各问了一道算法题,博主在这里和大家分享一下。
1.二叉树想必大家都了解,对于只有一个节点的二叉树,只会有一种结构,对于有两个节点的二叉树,那么会有2种可能的结构,那么问题来了,对于有n个节点的二叉树,一共有几种可能的情况?
当时直接就想列一下3,4,5个节点分别有多少种可能,然后看能不能找到规律,可是当去遍历4个节点时,发现遍历不住了,就放弃了。然后灵机一动,发现对于n个节点的二叉树,去掉根节点之后,会出现2个种情况。
第一种
一种是变成一颗n-1个节点的二叉树,这种情况存在两种可能。
第二种
另一种情况是,会变成一个a个节点的二叉树和一个b个节点的二叉树,a+b=n-1。
这样很容易列出递推公式,问题就引刃而解了。
[Math Processing Error]
上面公式可以优化一下,我们设[Math Processing Error],这样可以优化为
[