面试官谈面试思路
编码前讲自己的思路是一个考察指标。合格的应聘者需要在做事之前明白自己要做的事情究竟是什么,以及该怎么做。一开始就编码的人员,除非后面表现非常优秀,否则很容易通不过。
可以采用举例子、画图等多种方式,解释清楚问题本身和问题解决方案是关键。
画图让抽象问题形象化
画图是在面试过程中应聘者用来帮助自己分析、推理的常用手段。很多面试题很抽象,不是很容易找到解决办法。这时不妨画出一些与题目相关的图形,借以辅助自己观察和思考。图形能使抽象的问题具体化、形象化,应聘者说不定通过几个图形就能找到规律,从而找到问题的解决方案。
有不少与数据结构相关的问题,比如二叉树、二维数组、链表等问题,都可以采用画图的方法来分析。很多时候空想未必能想明白题目中隐含的规律和特点,随手画几张图却能让我们轻易找到窍门。比如在 面试题19:二叉树的镜像中我们画几张二叉树的图就能发现,求树的镜像的过程其实就是在遍历树的同时交换非叶节点的左右子节点。在 面试题20:顺时针打印矩阵中,我们画图之后很容易就发现可以把矩阵分解成若干个圆圈,然后从外向内打印每个圆圈。面试的时候很多人都会在边界条件上犯错误(因为最后一圈可能退化而不是一个完整的圈),如果画几张示意图,就能够很容易找到最后一圈退化的规律。对于面试题26“复杂链表的复制”,如果能够画出每一步操作时的指针操作,那接下来写代码就会容