首先是自我介绍,没有任何经验的我,几乎是把简历上的内容复述了一遍。好在对方似乎也并不期望我能说出什么非常出彩的话来,于是就直接切入正题开始了面试考核。
第一道题:
怎样得到一棵二叉树的深度?
这其实就是一个二叉树的遍历问题,我当时很抽风的来了一句“这个可以用BFS来做”,结果后面讲的其实是中序遍历@@,后面说的也就是中序遍历。关键的地方其实是设全局的静态变量max,并且不断的更新它。使他与最大的节点高度相同。
第二道题:
一个12级的台阶,我们可以一次走1阶或是一次走2阶,问总共有多少种走法?
我当时条件发射的想到了高中数学竞赛的走格子。从(0,0)走到(12,12),然后跑回机试的机房去借纸和笔,算了好一会儿才发现根本不对。后来在面试官的循循诱导下,发现了这其实是一道简单的非波拉切数列题目。@@
第三道题:
给定一个超过10万元素,每个元素均不大于1000的数组,怎样对其进行排序?
这个题目就要多亏了晓东。明显的是这些元素中会有很多重复的元素。计数排序无疑是最佳的方式。
第四道题:
怎样的到字符串的最长回文子串?
这道题目的来源是我在跟面试官聊到自己的ACM经历时说“一般我们是分工协作,简单题和字符串的题目归我做”,然后就来了这么一道强力的动规“字符串”题目。纠结了半天还是没有想出来,这让我觉得自己的算法设计和ACM搞得都十分的酱油!
具体面试题是这样,希望对后来面试者有帮助
满意的地方:
面试还算问得基础吧
不满意的地方:
面试官感觉有些严肃,面试过程比较紧张