- 先写一个最简单的例子,理解题意
- 确认输入输出
- 确认取值范围
- 简述解题步骤/要hint
- 开始动笔
- 检查边界情况>还是>=,是否要-1等,corner case是否考虑全面,判断语句逻辑是否写反
- 用最简单的例子跑一遍
- 再用一个特殊例子跑一遍
- 关于电面/OA
- 20min能做完一道新的Medium的算法题
- 一遍AC/ 瞬间定位Bug: 杜绝低级错误(tab缩进/空格缩进)
- 关于Onsite
- 白纸/白板写题思路依然如泉涌
- 肉眼Debug能够火眼晶晶
- 整体
- 除了结果正确外,还会考虑性能问题
- 是否能够考虑到:边界问题,非法输入问题
- 或者
- 如果你通过一道题目的平均提交次数在1.5次左右
- 如果你提交的代码能够击败90%以上
- 杜绝
- 使用功能比较齐全的编译器:IDE自动纠错问题,鼠标点击定位问题
如何讲清一道算法题
- 一定要和面试官交流具体的题目内容
- 告诉面试官:这道题很有意思,我以前没有接触过,这样就体现出你在现场是重新做这道题目。
- 问面试官有没有限制条件,说出自己大概的想法。
- 列出几个possible的算法和数据结构,看看面试官的反应,从中获取hints,在面试中,向面试官要hints的做法其实是应当鼓励的。
- 能写多少写多少,要一直和面试官交流,察言观色。即使在没有思路的情况下,如果能在面试官的提示下解出来,也仍然是可以接受的。另外大家要知道,面试官在面试后也需要写很长的报告。如果你一行代码都没有写出来,那么他也无法写报告,所以面试官一般还会引导着你去答题的。
- 看时间限制。
Reference:
算法面试,凭什么说你准备好了?