职悠学堂 | 职悠带你解析互联网公司高频面试算法题!
首先Yo妹想说,题海战术题海战术题海战术!重要的事儿说三遍!没办法,知识点就是那些,面多了就会发现,90%都是原题啊~
题库在哪里呢?按照循序渐进的原则,一一介绍:
1. cc150,全名cracking the coding interview - 150 Programming Questions and Solutions。经典中的经典,曾有人别的啥都不做,刷这本书三四遍,拿了Google的offer(注意是在美国,在中国就算了……)这本书的优势在于分章节,每章突出一块知识,题目精炼,答案好找;缺点呢,你写出的代码,需要深度检验,而cc150是书不是online judge,这个还是做不到。
2. leetcode。程序员刷面试题的第一网站,题多且全,少部分题目收费。刷的人很多,答案非常好找。online judge能深度检验代码的正确性,刷leetcode是最能锻炼算法题能力的。假如说时间有限只能刷一个,那必须是leetcode,假如时间够多……lintcode、meetqun等各大面试题OJ欢迎你,此外还有许多国内外大学的OJ。
以上是两大主力,但是光这两个,还不能到“题海”的水平,而且由于它们名气太响,有些公司有时会避开里面的题目……来,我们继续找题目。
3. 编程之美、剑指offer:就当成两本习题集好了,里面有些题目和1、2重复,但是大部分题目还是很优秀很巧妙的。重点是交叉对比,你就知道哪些是经典题目了。
4. careercup、看准网等:每家公司都有自己喜欢出的题目,这些网站方便你去找面经,紧跟公司出题潮流。
5. “结构之法”博客:July大神的博客,内容丰富,学习一年都可以。这里只讲里面的算法题:“微软面试100题”(实际上已经快500题了)系列,堪称算法题的大宝库,包罗万象,而且很多题目很新,是面试官喜欢出的类型……不过这个系列的排版略微混乱,很多题也没有答案;“程序员编程艺术”系列,讲的很细致,适合深入去学习一些算法;“教你如何迅速秒杀掉:99%的海量数据处理面试题”,很实用的海量数据处理面试文章。
6. 经典库函数。这块单独拉出来,是因为考的很多,比如atoi,strstr,memcpy等等……在“程序员编程艺术”中,杂七杂八有相关的论述,最好自己系统整理一下。
好,这些足够我们的题海了。下面来讲一下,哪些属于题海中的重点。
1. 最高优先级:面经。这个比什么都重要,为了节约招聘成本,同一家公司的题目,通常不会换的太勤快。
2. 次优先级:很经典的题目。什么定义为经典?前面我写了123456,假如某道题目能重复出现几次,那绝对是不朽经典(如atoi、LCS、LPS、单链表逆置……),经典的题目毕竟出的最多,一定要非常熟练。
3. 再次:稍微短一点(50行之内),稍微新一点的题目。面试官通常时间有限,没时间让你写个上百行,所以50行左右是最好的。
4. 最末:答案很长的题目。这种题目一般不出,要是出出来,一般就是压轴大戏,为了最后检测……通常长题目容易乱,分模块慢慢写,不着急。
最后,来放些高频算法题喽~
coding:
- JOIN: nested join, hash join, sort-merge join
- Number: Fibonacci, prime,随机取文件某一行
- String: strstr, wordcount
- Tree: height, lca, balance tree
- Heap: 查找最大的k个数
- DP: 最大连续子串和
- array: find a key in rotated array, 去除重复字符
- linkedlist: 是否有环,插入结点,删除重复结点
- 递归回溯:变化很多,这方面需要大量练习
知识性:
多线程,mutex/semaphore
java GC
C++ virtual, smart pointer
regex使用
数据库:知道btree, 索引
search engine: 倒排表,拉链,稀疏索引,空间向量模型,tf*idf,
large scale data: hash, consistent hash, bloom filter, bitmap, 外排序,
partition
分布式:CAP理论,gossip,Paxos, GFS设计思想
network: socket, tcp3次握手, asyschnoized io, epoll, select, 惊群
设计型:
queue/stack实现
LRU
trie tree
设计游戏
四则运算求值
当然呢,有高频题就有低频题,Yo妹再附上一些低频题供大家参考,找找感觉。
语言细节
1. python yield什么意思,generator,如何操作系统命令popen跟os.system区别
2. 问我API是叫什么,作用是如何把一个path 和文件连起来,path+name,我后来才明
白是说path里面有可能最后没/,path="/ab" , name = "ef"
3. java实现多线程的三种方式
4. java跟c++模板的区别
高级算法
1. 图论:把一个有向图划分成几个区域,每个区域用一中颜色染色,强连通?
分布式理论
2 phase commit是啥
vector clock
一致性hash,分布式hash
数据库
数据如何备份,把mysql导入导出命令给写出来,load data...
信息处理:
如何消重,去除spam
数学
1. reject sampling, 计算期望
linux内核
1. linux的原语是怎么实现的
2. 软练和硬连的区别
3. kill -9 9是什么意思,会不会有些进程永远杀不死
4. ls -l /dev
brw-r----- 1 root operator 14, 0 Feb 29 01:48 disk0
解释每个字符什么意思,14是什么
计算机原理
CPU L1, L2, L3 cache, memory 速度
磁盘读写速度
SSD跟Sata磁盘区别
在微信平台中回复“帮助”可查看更多文章。
在微信平台中回复“服务”可了解职悠课程。
本文转载自:Careeyo.com(你的个人求职顾问),知乎
Careeyo独家整理修改,版权归原作者所有,若需引用请注明出处。
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。