随着春季招聘季的到来,我们已经开始准备面试并赢得我们最喜欢的 offer。
这次 lucifer 从面试官的角度与大家分享一些面试技巧,让大家在面试时少走弯路。这次分享的重点是。
我负责公司的面试已经有 5 多年来,基本上是第一面和第二面,所以技术面试的水平相对较深,更多的是了解候选人的技术能力是否符合标准。近年来,我也采访了很多候选人。有些人没有技术能力,但有些人很遗憾,技术能力还可以,但没有通过我的面试,为什么?
面试考察什么?
首先,通常有以下标准可以判断候选人是否通过面试:
能否胜任技能
沟通能力如何?
工作热情如何?
。。。
所以我面试的时候一定是围绕上面展开的,只是侧重于不同的调查。
算法题和编程题实际上可以很好地检验上述信息,而不仅仅是检验。前提是面试官不能太死板,比如直接扔一个网上原题,有的甚至拿不出来考,肯定不行。
有同学做了反馈算法题目,却挂了面试。为什么?
除了想当然的那种做得很好,其实 corner case 没有考虑或不是最优解。还是有可能挂,为什么?
其实你的题目做得很好,只能证明,这不意味着其他也满足要求,比如上面提到的沟通能力,工作热情等等。
那么,如何更好地展示自己,给面试官留下更好的印象,以便通过面试呢?除了提高他们的技术实力外,方法也非常重要。在这里,我为你总结了一些技能。
算法面试的基本步骤
我在网上找到了一个《Interview Cheat Sheet》,这个 PDF 列出面试模板步骤,详细说明如何一步一步完成面试。
这个 pdf 一开始提到了三个好的代码标准:
可读性
时间复杂度
空间复杂度
太好了。
然后,列举 15 算法面试的步骤。例如步骤1:当面试官提问时,你需要先下来关键点(然后在下面写注释和代码) 看完我的感我的感觉是,只要面试遵循这一点,成功率就会提高。
pdf 地址[1]
多问几次,确保题目理解正确。
例如,输入输出,corner case 等等。想象一下,一个同事不分青红皂白地去做,却发现自己做错了,有多尴尬?你想和这样的同事一起工作吗?
例如,你可以问:
负数需要考虑吗?
结果的顺序重要吗?
额外的空间可以使用吗?
。。。
先说想法,再写代码。
虽然理解这个话题没有问题,但这个想法可能是错误的,或者面试官不想要这个解决方案。
想象一下你是面试官, 对面写了半天代码。想法是错误的,或者不是你想要的解决方案。你有点失望吗?
所以尽量先说想法,面试官觉得没问题再写,。
例如,你可以说:
简单暴力的想法是:xxxx。如果这样做,时间的复杂性是 xxxx。
简单暴力算法的瓶颈在于 xxx,我们可以用 xxxx 优化算法,优化复杂性 xxxx。
上一步给面试官讲思路,代入几个例子。
corner case 和 normal case 至少举一个来解释。这不仅会让面试官觉得你有很强的沟通能力,还会帮助你进一步理解问题理清思路。
有时候大家面试都很紧张,代入例子解释紧张感会慢慢减少。就像我做技术分享一样,前几分钟往往很紧张,后面也不会有紧张感。
例如,你可以说:
当输入为 [1,2,3,4] 时, 我们的先 xxxx, 这样就 xxxx,接下来计算 xxxx ,最后 xxxx 。
当输入为负时,我们可以直接返回 xxx。
快速编写代码,不要来回更改,否则会被扣除 coding 帽子不
其实前面有铺垫,写得快并不难。因为其实前面讲的是思路,你已经很了解算法了。
但是没有问题的想法并不意味着你可以完全写出来。它也可以完全写出来,这并不意味着你不需要改变它。这就要求我们首先勾勒出代码的一般框架。
一个简单的技巧是:。这样可以减少不断涂抹和修复的可能性。
一个例子:
defsolve(nums): defcheck(mid): #dosomething defanother_func(): pass #... l,r=0,len(nums)-1 whilel<=r: mid=(l r)//2 check(mid)
其中 solve 主要函数,而 check 和 another_func 它是拆分函数。
写完代码,先写个测试。
这不仅体现了你良好的代码习惯,也帮助你发现代码是否有问题。
小贴士:你可以代表你和面试官之前的例子和面试官给出的例子,看看是否正确。因为前面有铺垫,应该很快。
一个例子:
defsolve(nums): defcheck(mid): #dosomething defanother_func(): pass #... l,r=0,len(nums)-1 whilel<=r: mid=(l r)//2 check(mid) assertsolve([1,2,3,4])==True assertsolve([])==False #...
我们在这里使用 assert 断言。类似于日常开发后测试代码。
总结
最后给大家整理一个流程图,方便大家记忆,大家可以把图存起来备用。
最后希望大家可以在春招季斩获自己信息的 offer。也欢迎大家进我的春招群。加我微信,回复春招即可进群。
我的书 「《算法通关之路》」 已经出版了,想要突破算法面试的朋友不要错过,京东淘宝当当亚马逊等均有出售,电子版也有哦~
实体版购书链接[8]
电子版购书链接[9]
[8]
实体版购书链接:https://union-click.jd.com/jdc?e=&p=JF8BANYJK1olXQcDUV9VDUMeBF8IGloXVAIGU1pdCUIVCl9MRANLAjZbERscSkAJHTdNTwcKBlMdBgABFksWAm0BH18SWQYDXVxUFxJSXzI4UixRNl1GVjc-ci1CQA5RUl5sHVhZAlJROEonA24JG1MQWgMEUW5tCEwnQgEMGV4WVTYDZF5aCkMWA2kBH1sUVQ8yU15UOBBCbWgIHghBDgVQAw4JXx4nM18LK2slXTYBZBwzDUIWBWpdSVNFVFJQUQ1fDkMWAToKG1xCX1QEB1sJW0wnAW4JH1Il
[9]电子版购书链接:https://union-click.jd.com/jdc?e=&p=JF8BAL0JK1olXDYAVVhfD04UAl9MRANLAjZbERscSkAJHTdNTwcKBlMdBgABFkkWBW0PHlgUQl9HCANtcS0SdTFvWVt1X3BkVV4Kc0JxYRtPe1cZbQcyVF9cCEMSBGoOHmslXQEyHzBcOEonA2gKE1oVWwEKXV5cAXsQA2Y4QA57WgYHBwoOCxlAUztfTmslbQUyZG5dOEgnQQFaSQ5FWQYFB1cODhgSVDpaS1hFDwQLUlwJAU5DAWcJHWsXXAcGXW4
Reference
[1]
pdf 地址: https://github.com/azl397985856/leetcode/blob/master/assets/cheatsheet.pdf