
早上和面试官聊天, 才发现自己的基础下降的有点厉害, 过去那个飘逸写程序的小青年, 如今有点走下坡路了。
可惜我不服,所以要开始做题,把水平恢复上来,能力是最重要的。
最近在做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自带的插件,嗯,好一些了。