程序员求职时最怕的算法题,其实也有技巧可循
微信公众号【程序员江湖】
作者黄小斜,斜杠青年,某985硕士,阿里研发工程师,于2018 年秋招拿到 BAT 头条、网易、滴滴等 8 个大厂 offer
个人擅长领域 :自学编程、技术校园招聘、软件工程考研(关注公众号后回复”资料“即可领取 3T 免费技术学习资源)
关注后在后台回复“资料”即可领取3T免费技术学习资料(包含作者的原创文章合集)
校园招聘往往有一道迈不过的坎,就是笔试,相对于面试来说,笔试显得更呆板和残酷。
不论你各方面能力如何,只要笔试不过,就没有面试机会,特别是有些笔试只考算法题,做对就有分,做错可能一分都得不到。往往成绩是按答对题数来算,而不是分数。
简单来说,笔试是最粗暴且成本最低的刷人方式,因为公司人力有限,应聘人数往往却很多,不可能都安排面试,所以笔试和简历筛选就可以刷掉大部分人,有一些人可能是偶尔发挥不好,但公司不在乎。
供求关系摆在这里,笔试显然是不可避免的。虽然有一些提前批面试不需要经过笔试,但大部分的公司都需要经历笔试环节。
俗话说的好,上有政策下有对策,我们学生也会有相应的方式去准备笔试。大概讲一些方法吧。
1 打好算法和数据结构基础
在做题之前,你需要学会数据结构与算法的基础知识。推荐看一些算法和数据结构入门书籍,同时使用你擅长的语言自己写一遍。熟能生巧,直到你真正掌握。
2 剑指offer
剑指offer是一本经典的算法书籍,不仅适用于面试,有些公司的笔试题也会参考剑指offer。
3 LeetCode
刷完剑指offer并且真正掌握以后,可以开始刷LeetCode了,LeetCode的题目往往被直接搬到笔试题中考察。建议大家按照一定顺序进行刷题,主刷medium和easy。
4 公司真题
有些公司笔试题喜欢自己出,有时候题型很奇怪,出题形式也不尽相同,结果经常让人猝不及防,只能放弃。所以提前刷一些公司的笔试真题也是非常重要的一步,等你刷多了,就会感觉碰到什么样的题都能写一点。
5 熟悉自己使用的语言
这里主要指的是要了解编程语言中数据结构的使用,比如栈,队列,链表,哈希表等等,还要会使用一些排序方法,比较器。除此之外,还得会写基本的输入输出,因为很多在线笔试的网站都要求自己完成输入输出。
6 科学答题
这里说一个小技巧,就是实在想不出来的话,可以直接输出测试用例。
7 检查错误
另外,有些题目可能会超时,原因是复杂度太大,可以考虑空间换时间。
而有些题报内存问题,此时要检查一下数组大小是不是超过规定的空间复杂度了。
如果是递归栈溢出,则可能要考虑剪枝或者使用非递归做法。
另外,记得要检查你的变量类型是否正确,有时候可能需要用long但你却用了int,也会导致白白丢分。
8 本地调试
很多笔试题都支持本地编辑器提交处理,所以你可以先在本地进行测试,如果有问题的话可以考虑断点调试,更容易发现错误在哪里。
更多专题