Bootstrap

面试手写代码的一些经验

手写代码,指完全脱离计算机,用笔纸进行编码,有这些好处

  1. 面试需要
  2. 能完全静下心来,专注思考

建议步骤

1. 阅读题目

与面试官讨论。确保理解题意,以及一些边角情况的处理。这里可能遇到几种情况,

a. 题目之前做过

非常熟悉,代码已经浮现在眼前。千万不要直接写代码,还是按照上面的要求,和面试官过一遍。把之前代码中的边角情况一一列出和面试官确认。这样,一方面避免给面试官你只是在背题目的印象,另一方面确保不是变形题,直接背的话,可能是错误答案。

另外,对于平时刷题,要在理解的基础上背。对于题目,脑子里最好能有图行化的过程。这样时间久了,不容易忘记。而且面试的时候,可以根据图形化过程,反过来推导出细节。

b. 题目做过,但是有点记不清细节了

正好可以利用这个机会和面试官沟通,整理思路细节。

c. 题目完全没有做过

没有关系,静下心来,集中精力在理解题目内容上,想一个最暴力,最直白的方法。然后在这个基础上发现问题,并尝试优化。

2. 寻找并讲解解题思路

无论何种情况,这里都需要从最直接,最暴力的方式开始讲解,并且分析时间复杂度。如果有更好的思路,可以作为改进方法主动提出。如果没有的话,可以尝试从面试官那里得到一些提示。对于大多数面试,这里并不期望一个最优解。给出一个没有问题的折中解,就能通过面试了。

讲解思路的时候,一定要讲解完整,不能囫囵吞枣,否则后面编码的时候就会出现问题了。

3. 编码

确定解题思路以后,先写出关键步骤伪代码,防止细化的时候,精力分散,遗漏一些步骤。

  1. 选择直观的流程实现代码或许会长一些,但是易于理解,记忆,不容易出错,至少保证正确性。短而精致的代码,有时环环相扣,每题处理方式不一样,不利于记忆,容易出错。
  2. 变量名避免使用单个字母,增加可读性,便于自己检查,并且和伪代码能对应

4. 走查代码

一定要耐心再次检查,花不了多少时间,确认循环边界处理的是否正确等,并代入参数运算。这里也是和面试官沟通的一个机会。一边代入数值,一边口头计算。如果发现问题的话,及时改正。能自己修正的问题,都不算大失误。如果没有问题的话,正好也是给面试官讲解的一个过程,帮助面试官理解自己的代码。


;