算法,在众多大厂研发岗面试中常常涉及,头部大厂比如头条更是看重。所以,如果想进大厂,也建议多刷刷算法题。
或许大家都有这个意识,但就是不知从何处看起。最近我在整理一些刷题资料,无意中发现两个巨大宝藏:
-
第一个是一位 BAT 大佬霜神(halfrost@github)写的 LeetCode 刷题笔记;
-
第二个是一位谷歌大佬整理的 LeetCode 101道题目。
看过这两份题集后,不得不惊叹其详细、准确的解法,称其为宝藏一点也不为过。
看题集收获最多的是一种思路,它对于你去刷其他 LeetCode 算法题目或者去面试帮助非常大,刷完它俩,一般难度的算法题目基本难不倒你了。
一、beats 100%的霜神
第一份是霜神(网名@halfrost,中文名一缕殇流化隐半边冰)的LeetCode 刷题笔记。霜神是前阿里资深后端工程师,业余时间酷爱写博客,下图即是他刷题的submissions。
一年内3400+次submission,基本保持每天都有提交。
这份题册最难得的是,所有题目代码提交之时都已经beats 100%,没有beats 100% 的题解不会放到本题册中。
或许你不知道所有题目beats 100%有多难,比如看如下某题的submission detail图:
beat 100%已是当时的最优解。
有可能读者会问,为何追求beats 100%?
霜神认为优化到 beats 100% 才算是把这题做出感觉了。
因为不考虑 beats 100%,很多题目都可以采用暴力解法,最终也可以 Accepted,但面试之时,面试官却会故意深究“还有没有更优解?”。
有了更深层次的思考与优化,才让做题有了更深层次的意义,面试也会更加分。
全题册包含1400+题目,总共分四章,有专题,也有逐个题解。
题册会详细描述每题解题思路和源代码,每题的解题结构基本都是"题目+题目大意+解题思路+代码"。感受下题册的布局结构:
确实很用心,条理很清晰,内容也十分充实,特别是每一题的讲解,图文并茂,也好理解。刷完这些题目,对于算法和数据结构的理解都会更加深刻。
原电子书出处:https://books.halfrost.com/leetcode/
二、谷歌大佬的LeetCode101
第二份:《LeetCode 101:和你一起轻松刷题(C++)》。
是由入职谷歌的@高畅在攻读美国卡内基梅隆大学硕士学位时,为了准备实习秋招,利用几个月的时间,刷了几百道题目,然后总结下来的题集本。
全书分为算法和数据结构两大部分,共十五个章节。
全书非常详细地讲解了LeetCode刷题的常用技巧,囊括101道LeetCode题目,题目讲解基本按"题目描述+输入输出样例+题解"结构描述,截图看一下书中的书写布局:
这排版都是按照精美图书来出的!讲解部分非常详细,还有一些注意的小知识点,非常到位贴心。
刷完由作者挑选的101道LeetCode题目其实是不太够的,研读它主要还是在于把思想学习到位了,后面再去刷LeetCode上的其他题目。
点我下载《LeetCode 101:和你一起轻松刷题(C++)》
题集的作者确实很牛逼,也可以去看他的github,一定能学习到很多东西:
https://github.com/changgyhub/leetcode_10
三、最后
最后,送大家一份我一点一点积累整理的电子书库,里面书籍都是计算机方面的经典书籍。
书库包括但不限于以下:Java编程语言、计算机操作系统、网络编程、面试、设计模式、MySQL、Spring源码、中间件 、算法与数据结构、数据库、Redis、程序员晋升、系统架构等相关。
书库会日积月累更加完善,多看这些书籍对于学习计算机的同学帮助非常大,有需自取:
https://github.com/iam-tin/bookshttps://github.com/iam-tin/books