一、答题吃力的原因
万事开头难。刚开始刷力扣的时候,我也是特别的痛苦。虽然每个数据结构都会是看到题之后还是没有想法?课上学的根本用不到。但是当我刷到第300道题左右。把常见的书的题目比如说程序员面试经典。力扣前两百题。剑指Offer题目刷的差不多的时候,就可以解决一些相对容易的,中等难度的利口体了。究其原因也就是刷题不够多。编程语言熟悉不够。从量变到质变是需要一个过程的。刚开始虽然很痛苦,但只要坚持下来就好了。
二、刷题办法
题不能乱刷。最好是一类一类的做。leetcode都给咱们分好类了。
把常见的算法分类先给刷完。像一些类似字典树的高级数据结构,暂时先不用管。先解决好常用的分类,比如数组,字符串之类的。最好要把深度优先搜索,广度优先搜索。树的各种遍历办法。这些先全部刷完。分类之后,一个分类里面也没有多少题。等你刷500题之后,就会感觉各种题都很有思路。在面试的时候也能很轻松的想到解决办法。除了一些很难的动态规划会比较复杂以外。其他的一般都可以自己解决了。像一些不常见的数据结构。如网络流,字典树之类的。等有时间有心情的时候再去刷就好了。
三、推荐一些刷题书
labladong的算法小抄。程序员面试经典。剑指offer。算法竞赛经典有几本书,左程云的算法书。
四、刷题心得
说白了就是多刷。尽量用一门语言,熟悉这个语言的各种数据结构和工具库。我是用的JAVA。等刷熟练了。看到其他的题目,就会有自己的解决办法的。不要着急,诚心去刷。多去看看多种解析,把一道题的多种办法都给看完。这样你一道题就可以学到多种解题办法。多去看看一些博主的分类题目及其解析。Yeah最好了解一些巧妙的办法。尽量要把最精炼的办法给记住,会写。等到时候用的时候就可以直接从脑子里搬出来了。