目录

1.    为什么我们要刷LeetCode?

2.    LeetCode的现状和问题

3.    本文的初衷

4.    LeetCode刷题建议

4.1入门数据结构,打基础阶段

4.2 建立求职面试解题的思想,刷《剑指Offer》

4.3 系统性地开始刷LeetCode题目

1.  为什么我们要刷LeetCode?

LeetCode是面向找IT工作开发岗/算法岗的基本题库,想去BAT等大厂,笔试和面试中的大部头都要考你的算法题的解题技巧和编码能力。然而,对于很多大一大二在校的本科同学,甚至包含一部分研究生同学,都会问一句:LeetCode是啥?一般都是在临近找工作时,寻找相关经验贴才知道原来还有这样的一个神奇的网站。随着IT相关专业,大多数转专业同学都瞄准了互联网方向的岗位,以及计算机学科招生和热门化,导致内卷越来越严重。因此,为了提高个人的核心竞争力,提前Or开始刷LeetCode,从而开阔自己的算法思维,并提高自己的编码能力,能够大大增加我们获取理想Offer的机会。

2.  LeetCode的现状和问题

LeetCode网站刚开始创建时,题库内部共约800道题,其中的题目基本都是来自谷歌等互联网大厂的面试笔试真题。然而,随着网站的发展,题库里面的题目数量也在逐步递增,截止2020年10月4日,已累计1822道题。后期,基本还会以每周4-5道题的数量递增。从而导致:

(1)     题目量越来越大,想半年Or一年全部刷完,很难!或者说,不现实,付出和收入很难成正比。

(2)     考点方向也多,不知道从哪里入手,让人感觉很迷茫。

(3)     如果盲目地每天随机刷几道题,会出现:随着时间的推移,几周前答错的题,如今重写,依然大概率会错。即可能出现:竹篮打水一场空的问题。

3.  本文的初衷

我本人大三系统学习和刷过算法题半年多时间,另外在研二上学期也刷过三个多月的LeetCode。对于LeetCode的刷题也有一点个人的经验和心得,记录自己过去学习过程的同时,也希望对初步踏入LeetCode刷题之旅的同学有点帮助。本文的重点对象:大一大二的本科生,以及研一就下定决心打算找工作的同学。如果正在看本文的你,有着ACM等算法比赛经历的同学,就当作参考看看吧>~<。

4.  LeetCode刷题建议

建议分三步走策略,第一次刷题建议4-6个月完成。

4.1入门数据结构,打基础阶段

重点关注:数组、字符串、栈、队列、二叉树、链表、哈希表、递归和动态规划,弄得基本理论,并会解答大部分的简单题和部分的中等难度题。

刷题方式:直接在LeetCode官网上面(具体操作见下图),选择数据结构专区里面的相关章节进行编码学习,建议耗时20天-40天。

4.2 建立求职面试解题的思想,刷《剑指Offer》

《剑指Offer》共计68道题,建议每天平均完成3道题,耗时20天-40天。

强烈建议要买书看,看看里面的题目解题思路的讲解,第一遍刷的时候不要死磕,但是一定要弄懂。在正式找工作前,一般刷个3遍左右比较完美,最好能够做到对其中的题目拥有较强的手撕代码能力。

给出一份我在2019年上半年期间,采用Python语言刷的GitHub解答

4.3 系统性地开始刷LeetCode题目

针对LeetCode题库里的题目越来越多的问题,我个人依据考点对题库里面的题目进行了筛选,共计313道题,建议耗时90天-120天。

我将按照以下顺序推荐刷题:

重视对递归思想的理解和应用,递归是DFS和回溯法以及树等知识点解答的基本能力要求。

请参考博客:LeetCode刷题总结-递归篇

解决完递归的问题后,建议重视动态规划、数组、数学、树和字符串的刷题,其它知识点建议在上述五点内容之后开始刷,其中动态规划问题和数学问题是算法题的难点和痛点问题:刷题过程中,很可能让你掉层皮。

重点关注内容(共计313题):

  1. 动态规划问题(请点击,可以跳转道具体博客),共计54题
  2. 数组问题,分上篇(17题)中篇(12题)下篇(14题)番外篇(7题),共计50题
  3. 数学问题,共计40题
  4. 树问题,分上篇(21题)中篇(17题)下篇(9题),共计47题
  5. 字符串问题,共计32题
  6. DFS、BFS和回溯法篇,共计13题
  7. 二分查找和贪心法篇,共计16题
  8. 双指针、位运算和分治法篇,共计14题
  9. 栈、链表、堆和队列篇,共计20题
  10. 哈希表篇,共计12题
  11. 排序、并查集和图篇,共计15题

初步刷完上述的313题后,可以开始参考LeetCode每周的周赛,以比赛来敦促自己的算法刷题过程,同时激励自己的算法刷题兴趣。后续,开始针对自己的易错点,选取LeetCode上面的考点进行针对性练习。

最后,如果看到本文的同学已经开始步入了找工作的时期,没有系统和完整的时间来完成300多道的题目。个人建议,只需要把《剑指Offer》刷2-3遍,另外把LeetCode网站推荐的LeetCode热题Hot100刷完1-2遍即可。

LeetCode刷题的一点个人建议和心得的更多相关文章

  1. LeetCode刷题专栏第一篇--思维导图&时间安排

    昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日 ...

  2. LeetCode刷题总结-树篇(上)

          引子:刷题的过程可能是枯燥的,但程序员们的日常确不乏趣味.分享一则LeetCode上名为<打家劫舍 |||>题目的评论: 如有兴趣可以从此题为起点,去LeetCode开启刷题之 ...

  3. LeetCode刷题总结-数组篇(上)

    数组是算法中最常用的一种数据结构,也是面试中最常考的考点.在LeetCode题库中,标记为数组类型的习题到目前为止,已累计到了202题.然而,这202道习题并不是每道题只标记为数组一个考点,大部分习题 ...

  4. LeetCode刷题总结-数组篇(下)

    本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17 ...

  5. leetcode 刷题进展

    最近没发什么博客了 凑个数 我的leetcode刷题进展 https://gitee.com/def/leetcode_practice 个人以为 刷题在透不在多  前200的吃透了 足以应付非算法岗 ...

  6. LeetCode刷题指南(字符串)

    作者:CYC2018 文章链接:https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Leetcode+%E9%A2%98%E8%A7% ...

  7. leetcode刷题记录--js

    leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

  8. LeetCode刷题总结之双指针法

    Leetcode刷题总结 目前已经刷了50道题,从零开始刷题学到了很多精妙的解法和深刻的思想,因此想按方法对写过的题做一个总结 双指针法 双指针法有时也叫快慢指针,在数组里是用两个整型值代表下标,在链 ...

  9. Leetcode刷题记录(python3)

    Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

随机推荐

  1. python练习 英文字符的鲁棒输入+数字的鲁棒输入

    鲁棒 = Robust 健壮 英文字符的鲁棒输入 描述 获得用户的任何可能输入,将其中的英文字符进行打印输出,程序不出现错误.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪ ...

  2. 【Android】Android开发点击查看手机电量的小功能。学习广播的一个小技能小Demo

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 微博:http://weibo.com/mcxiaobing 首先给大家看一下效果图: 先写一个广播类 ...

  3. Mysql性能参数优化

    1.Max_connections (1)简介 Mysql的最大连接数,如果服务器的并发请求量比较大,可以调高这个值,当然这是要建立在机器能够支撑的情况下,因为如果连接数越来越多,mysql会为每个连 ...

  4. MD5截断比较验证 - 补充

    继上篇MD5截断比较验证文章之后有朋友提示除了数字以外,许多字母数字混合的明文在MD5加密之后也是可以达到同样效果的 同时在De1CTF中Web4题目中遇到了另一种较为特殊的截断比较验证,如图所示: ...

  5. 浅析LR.Net工作流引擎

    在当代信息化软件系统开发中,工作流引擎是其中非常重要的一环.所谓工作流引擎,是指工作流作为软件系统的一部分, 其中包括了流程的节点管理.流向管理.流程样例管理.审核管理等重要功能. 工作流引擎可根据角 ...

  6. js拖拽原理及简单实现(渣渣自学)

    第一步 首先简单分析下需求吧,我们就是想实现鼠标拖拽带颜色的方块时,让方块停留在鼠标松开的位置,需要计算的就是拖拽前的坐标和拖拽后的坐标,鼠标移动后相对于原位置的偏移量=目标元素的偏移量,根据这个等式 ...

  7. python基础 画图

    python 画图 matplotlib 库只保存图片,不显示图片? 在导入库时,添加如下代码 import matplotlib matplotlib.use('Agg')  各种 symbol ? ...

  8. java 二维码生成(可带图片)springboot版

    本文(2019年6月29日 飞快的蜗牛博客) 有时候,男人和女人是两个完全不同的世界,男人的玩笑和女人的玩笑也完全是两码事,爱的人完全不了解你,你也不要指望一个女人了解你,所以男的不是要求别人怎么样, ...

  9. 《Linux 操作系统》Linux的常用命令操作大全

    前言 在学习命令之前先学习我们该如何去学习linux 命令. 几乎每一个命令都有参数,每个参数的含义是什么,我们一般也不是全部都能记住,所以我们必须有一个可以知道每一个命令下各个参数的含义的方法. 命 ...

  10. Java成神之路:第三帖----数据结构与算法之队列

    数据结构与算法--队列 今天掉了两根头发,摸掉的,记得 别乱摸,很珍贵的!! 什么是队列? 1)队列是一个有序列表,可以用数组或是链表来实现 2)遵循 先入先出 的原则.即:先存入队列的数据,要先取出 ...