令狐冲的算法小抄

我曾经就职于硅谷两家顶尖IT企业,收到的顶尖企业offer数10+,也是前算法竞赛国家集训队员,到现在为止,刷过的算法题已超过3000道

身边经常有人问我:你是怎么做到刷这么多题的?怎么刷题才能不吃力?

其实我刷题的时候倒真没想这么多,一直以来我的观念是:题总是有套路的,就看你能不能总结出来。我自己热衷于挖掘这些技巧,反复使用,反复总结新的套路,这也是为什么别人刷600道封顶,而我刷3000+还乐此不疲的原因之一。

在面试超过200人以后,看到不少准备了很久的同学,一到coding环节依旧无从下手,刷题刷了个寂寞。我也把自己在做题时的技巧整理成一份Cheatsheet。内容主要根据我面过这么多大厂,和面试过这么多人以后,把高频知识点做了一个总结,并归纳出了算法模板.


举个例子:对于很多人一直很头疼的动态规划,其实解动态规划只需要四个步骤 :


1、确定状态

2、转移方程

3、确定初始条件和边界情况

4、确定计算顺序


跟着四步走,就能搞定动态规划的题目。


为了让大家能在我的Github得到尽可能多的帮助,这里献上使用方法:

1、先给本仓库点个star,再背我总结的算法模板(模板都不想花时间背,就别继续看了)

2、跟着下面目录中的的高频题练习(拿着模板练,一定要学会消化知识,这样才能举一反三)

3、最后在LintCode大厂高频ladder进行练习(别bb,拿着模板多刷题一定没错)


建议关注我的公众号“九章算法” ,里面都是高质量的原创文章,除了分享最新岗位招聘信息,还有很多就业求职的干货内容的分享。

公众号二维码.jpg

也欢迎关注我的知乎“九章算法”,里面有很多技术,技巧相关的文章内容分享。关注它们绝对不会吃亏,只会让你不断涨知识!

先不多说了,我直接上我整理的高频知识点,感受一下大厂面试到底都考那些东西!

目录

  • 数据结构

二叉树搜索

二叉树分治

哈希表

字典树

链表

线段树知识点总结

  • 算法思维

二分法

位运算

分治法

双指针

字典MAP

并查集

排序算法

贪心算法

  • 动态规划

动态规划十问十答

  • 系统设计

如何答好面试中的系统设计题

  • 图论

宽度优先搜索

深度优先搜索

  • FANNG面试高频题

数组题

Google 面试题 | 原子计数

Google 面试题 | 3个非重复子数组最大和

Google 面试题 | 字典里面的最长单词

Google 面试题 | 找二叉树最底层最左边的节点

Google 面试题 | 合法的IP的地址