zoukankan      html  css  js  c++  java
  • LeetCode刷题的一点个人建议和心得

    目录

    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个月完成。(如果你对算法充满狂热,或者说有很强烈的目标,并且肯付出大量的时间,个人感觉你完全能够用3个月时间初步刷完一次。)

    4.1入门或者复习数据结构,打基础阶段

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

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

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

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

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

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

    4.3 系统性地开始刷LeetCode题目

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

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

           (1)重视对递归思想的理解和应用,递归是DFS和回溯法以及树等知识点解答的基本能力要求。请参考博客:LeetCode刷题总结-递归篇

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

           刷题推荐及顺序(共计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遍即可。

  • 相关阅读:
    ionic2简单分析
    mvc的真实含义
    JavaSE学习总结(十七)—— IO流
    vs2010快捷键;sql server 2008快捷;IE9快捷键
    设计模式之六大设计原则
    通过peview分析PE文件
    游戏限制多开原理及对应方法
    inline hook原理和实现
    vm tools安装包为空
    Linux下PWN环境搭建
  • 原文地址:https://www.cnblogs.com/liuzhen1995/p/13767751.html
Copyright © 2011-2022 走看看