做题初衷
1.面试会考基础算法;
2.为了让自己动脑,做做数学题还是有点意思的。
在哪做题
-
力扣(leetcode的中文版)https://leetcode-cn.com/
-
leetcode https://leetcode.com/
我的刷题之路
1.瞎刷
文章是现在写的,写之前很久就开始刷了,一开始我是在力扣上瞎刷,不按题型走,按题号刷,觉得自己随随便便好像就能搞定,态度太傲慢了,可想而知,被虐的体无完肤,信心全无,其实挺蠢的,我从18年开始陆陆续续刷题,每天很慢,经常对着题目发呆,一天一道题的时候都很常见,靠着我的执着和轴劲儿刷了几十多道题,现在全都不记得了,做题毫无章法,刷完真的是白白浪费精力,也丧失信心。
也找过一些算法的书,<算法4>毫无疑问,高居榜首,我上coursera上找到了普林斯顿大学的讲解算法4的视频课程,视频课程讲的非常好,教授讲课的时候在发光,听得时候也很感兴趣,感觉算法变得简单,看了几节后就没中文字幕了,遂逐渐搁置。。。英文不好,算法4到后边介绍的很全,我要达到面试水平不用那么复杂的;
结果:大致懂了一些基础的题目类型。
看了下书上有好多很复杂的算法,(类似红黑树, B+树...),我以为都要学,看了别人的刷题经验,我发现其实不用的,不用给自己徒增难度,刷入门算法就行了,最基础的各种排序,字符串操作,链表遍历,二叉树遍历,基本到medium等级的比较少,这些基础类型足够应付面试够用了。
2. 入门
后来是同事推荐,说剑指offer上的题目在面试的时候比较高频,开始刷剑指offer,现在就着剑指offer写一写分类。
剑指offer
刷题这个东西,一开始是挺难的,进度很慢很慢,非常打击自信,明确刷题目标后,但是贵在坚持(也有可能是跪在坚持),学完了以后感觉再看python里的东西有些些明了,python好像变简单了
3.剑指offer 第一遍
第一遍的时候在牛客上刷的,就是熟悉整个题型,想5分钟,想不到就看答案(你就是个普通人的智商,不会很正常,这里可能会积累挫败感)看懂了背下来,怎么背呢,看一遍答案,可以照着抄,抄完捋顺了,删掉(可以保存到本地笔记里,要是跟抄的答案没出入的话,就直接删),按照记忆的思路再写,其实是为了更熟,脑子觉得自己会了,可是手还是不会,把算法从思路转换成代码的这个输出很重要,这有助于发现代码中的细节,阈值的处理这些。
我做完第一遍后画的图,划分的可能不是很精确,而且有些题目忽略了
大致是按上图那么分的几类
4.剑指offer 第二遍
牛客上的答案和代码调试,整体使用感觉还是不如力扣,第二遍我转战到力扣,正好力扣把剑指offer买下来不久,现在刷了20道题了,看到题目会熟悉,这道题我做过,试着写,不看答案手写,或者看答案记思路,再写,绝不对照着抄,看看题目的其他解法,比第一遍的时候写起来更顺畅,理解也在加深。
大概一天刷7,8道题的节奏。。比之前快一点点。
稍后会把剑指offer的题根据分类整体,写出来。
网友评论