新手基础Python、Java、C、C++、C#、Go、Php刷题LeetCode路线、思想和心得

首先给一个B站程序媛的新手刷题指南视频分享,这个视频内容不错。这篇文章主要结合视频中的精华和自己这段时间刷题的一些心得。

因为基础差以前基本没刷过LeetCode,又面临找工作,所以时间分配很重要。我的时间路线大概分为两步:

  1. 按照这个github仓库的路线进行模块化的刷题,因为以前的数据结构和算法设计都忘得差不多了,所以先分类型去刷题把每个版块的内容捡起来。刚好这个仓库能够满足需要,题量也不是太多。同时结合B站这个BAT版LeetCode算法讲解视频食用效果更佳,算法题推荐使用C++编程,因为现在大多数公司都要求使用C++,当然Java和Python也是可以的,只不过在效率方面可能不佳。新手基础Python、Java、C、C++、C#、Go、Php刷题LeetCode路线、思想和心得_第1张图片新手基础Python、Java、C、C++、C#、Go、Php刷题LeetCode路线、思想和心得_第2张图片
  2. 刷完这个仓库上面的题之后基本上对所有题目类型都有一个了解,看到LeetCode大部分的题目都能够有一个大概的思路。接下来就是针对性的练题,比如DP动态规划特别吃力就可以在LeetCode上找这方面的题练习。在这我直接上手企业题库,每个厂出题的侧重不一样,所以有的放矢这里以腾讯为例。新手基础Python、Java、C、C++、C#、Go、Php刷题LeetCode路线、思想和心得_第3张图片

接下来就是刷题思路,刷题思路其实很重要,时间充裕的话可以按照自己的习惯来。如果时间不是特别宽松,就需要一个特定的刷题思路。我的刷题思路步骤:

  • 拿到一道题目先分析考察的是什么知识点,比如排序还是动态规划,然后再考虑用什么数据结构去解决。当然你也可能一头雾水根本不知道这个道题考察的是什么、也不知道怎么去解,这种时候就不能死磕,浪费时间。在这里我比较推荐自己定时做一道题,比如拿到题15min内没有任何头绪,那就果断放弃直接看LeetCode上别人的思路,看懂了自己再去自己实现。记住一定要自己独立实现代码,如果只是看别人的代码仿照写这种有很多细节的地方不能注意到,自己写错了再去看别人的实现,这样可以加深印象。
  • 做完一道题AC之后,不要直接就过了。一定要去看一看别人的题解,LeetCode里面大神很多,算法的世界也很神奇,有很多你意想不到的解法。可能你写了几十行代码AC之后才超越5%的人,而人家就几行代码就能超越100%的人,所以学习别人的解法对我们来说收益是最大的,也是提升最快的方式。选择题解,然后点排序选择热度最高,看前面几个题解就差不多了。看完之后肯定有所收获可以用自己的工具比如CSDN博客、有道云笔记、OneNote,或者使用Ipad里的GoodNotes记录心得,看自己的笔记比较熟悉可以快速回忆起来。
  • 还有一点很重要,就是学会Debug调试!LeetCode上有很多人为了追求简洁会使用晦涩难懂的代码,特别是在python语言中这种现象比较突出,有些题一行python即可解决但你都看不懂表达式;还有很多人说递归难懂、回溯难懂、DP难懂,不知道怎样去练习,其实就是Debug!代码不是看会的,而是Debug出来的。这种题要搞清楚每一步每个变量是多少,表示的是什么,比如递归,递归到哪一步了?该返回了还是该继续递归?再比如动态规划,状态转移方程是用什么数据结构去实现的?每一步的状态是什么。这些都能通过Debug得到,一定要多使用IDE的Debug功能!弄懂每一个步骤,这样才能对算法本质有深刻的了解,面试的时候才不会忘。
  • 最后一点,也是最近刷题悟出来和看面经学到的。就是题目要多刷几次,比如那种DP的题目时间一长过段时间就忘了思路,更不要说代码了,说不定看着几个月前的代码就是一脸陌生。所以题目一定要多做几次,一般2-3遍即可。还有就是手撕代码,做完一道题,过一天再来做一次,用笔写在纸上。没有编辑器的加持,很多东西就忘记怎么写,还有很重要的一点是锻炼这种手撕代码的感觉!如果你从来没有自己练习过在纸上写代码,不管你leetcode刷了多少遍都意义不大,和面试官face2face写代码的时候就很容易写不出来。所以一定要多加练习熟练,其实就是和大学里面期末笔试C语言一样的。刷题不易,且刷且珍惜。
  • 新手基础Python、Java、C、C++、C#、Go、Php刷题LeetCode路线、思想和心得_第4张图片

最后:题不一定要做得多特别是在时间有限的时候,而是要把题目思想、原理弄懂才能融会贯通,遇到新题才能心中有数;做题的时候要旁征博引举一反三,学会总结写笔记。刚开始刷题很困难,基本都是每道题都要看答案,无所谓一步一步来,题刷多了才能慢慢有感觉了(量变才能引起质变),所以一定要坚持!

  1. LeetCode每日一题,坚持打卡,有简单也有困难的。不积跬步无以至千里。新手基础Python、Java、C、C++、C#、Go、Php刷题LeetCode路线、思想和心得_第5张图片
  2. 遇到题解看不懂的,可以去B站、youtube上去找视频看别人的讲解,相对来说会容易理解一点,这里再推荐B站一个up主的LeetCode算法题讲解视频。
  3. LeetCode企业题库需要会员的,这里可以看到一些企业题库的题目。

新手基础Python、Java、C、C++、C#、Go、Php刷题LeetCode路线、思想和心得_第6张图片

 

你可能感兴趣的:(#,刷题心得)