LeetCode是一个在线代码评测平台,其中包含了各种难度级别的算法、数据结构、数据库、操作系统等方面的题目。渴望进入大厂的同学都会在校招前通过练习 LeetCode 题库中的问题来提高自我的编程技能,以及提高算法能力,从而在技术面试中崭露头角。
LeetCode上有 2300+ 道的编程问题,并支持支持16+种编程语言(包括:C、C++、Java、Python 等),同时它还是一个活跃的社区,有许多程序员大佬在社区中发布不同的解题思路,以及职业分享,从而帮助他人更好地提升。
目前国内外许多互联网大厂都喜欢在在面试的时候考察候选人对于LeetCode问题的解题思维,并且手写代码解题,因此LeetCode也逐渐成为入职大厂的“面试圣经”,许多大厂程序员也都表示,入职前都吃透了LeetCode的苦。
目前LeetCode上算法题库有将近1300多道,许多同学在看到的第一眼就彻底绝望了,这的刷到猴年马月才能拿到Offer啊,保不齐还没就业就先退休了。
当然外企大厂的Offer实在诱人,有的同学不惜花费重金包年了LeetCode会员,就为了能刷全国内外大厂的真题。但刷到最后不仅收获了一整个痛苦面具,还收获了混乱的记忆,面试官的考题要么一题多解要么就是变形题,脱离了原题就全忘了,那对于LeetCode到底应该怎么刷呢?
对于基础算法和数据结构薄弱的同学,小萌不建议同学们一上来就刷题,妄图通过背课文的方式背下所有的答案,这不仅累坏了自己,也无法真正的提升算法能力。巩固好基础且常用的数据结构和算法知识才能在刷题中事半功倍。
常用的数据结构:
数组、堆、哈希表、链表、栈、队列、树、图等
常用的算法知识:
枚举算法、递归算法、搜索算法(二分查找,DFS,BFS)、回溯算法、贪心算法、分治算法、动态规划等
方法一:顺序法
建议未刷过题的同学按照顺序(AC)来,前 150 题覆盖了很多经典题目和知识点。数据结构和算法基础较好的同学,可以按类标签进行强攻学习,逐一攻克。在上述内容刷过之后,则要多练习『Hard』类题目可以让自己的思路更开阔。
方法二:标签法
按照网站给大家排列的不同tags,起到模块化的复习和学习作用。比如复习链表的内容,就选Linked List这部分的23个题目。刷完之后可以再总结一下常用的方法和数据结构与构造方式。
方法三:目标法
Leetcode题库中按照公司进行了分类,我们可以针对于投简历的几家大厂开启定点“爆破”,专注于目标企业常考的类型题。
当然刷题这种事一口吃不成个胖子,还需要我们长期坚持的刷题,那如果时间紧迫怎么办呢?小萌当然有办法,小萌手里有份真题专门针对想要高效刷题以及准备转码的同学。
已标注难易程度,从低到高,刷完真题事半功倍!