2014年3月1日 Start && Unique Binary Search Trees

早上和面试官聊天, 才发现自己的基础下降的有点厉害, 过去那个飘逸写程序的小青年, 如今有点走下坡路了。

可惜我不服,所以要开始做题,把水平恢复上来,能力是最重要的。

最近在做LeetCodeOJ的题,一般般难度,每道题都不需要查资料就可以做出来,感觉还不错,很像面试题的样子。

当然,最好还是做一些ACM OJ的题吧。

题目: Unique Binary Search Trees

讲的是如何判断N节点二叉搜索树最大个数,其实认真想想就知道,只是一个最大子树的题,忘了,重新用笔画推导,应该是 F(n) = ( F(i)*F(n-i-1)  for i = 0; i<n; ++i)。

另外,早上面试官聊天,提到我居然都忘记了switch的用法,简直菜成狗,必须用一用。

class Solution {

public:

    int numTrees(int n) {

        switch (n)

        {

            case 0:

                return 1;

            case 1:

                return 1;

            case 2:

                return 2;

            default:

                int ret = 0;

                for (int i = 0; i<n; ++i)

                {

                    ret += (numTrees(i)*numTrees(n-1-i));

                }

                return ret;

        }

    }

};

很简单的题,庆祝一下我回来了。 另外cnblogs 对 Wordpress 的兼容挺好的,不过代码样式还是有点花,调整了一下,换成cnblog自带的插件,嗯,好一些了。

你可能感兴趣的:(Binary search)