type
status
date
slug
summary
tags
category
icon
password
前言:
22年4月上海封城, 我困在出租房里, 线上找工作面试经常被问到算法题, 于是我开始了刷LeetCode算法题. 现在找工作告一阶段, 回顾这段刷题时光, 写下这篇博客, 希望对算法小白有点帮助。
零、目标人群
希望动手刷LeetCode,但是不知道如何下手的大学生或者搬砖人
一、前期基础
- 一定要会一门编程语言:Python、Go、Java、C++
- 大O记法,时间空间复杂度分析
- 基础算法:二分法、基础排序、基础搜索、基础递归
- 基础数据结构:线性表、堆、栈、队列、二叉树、图、哈希表
- 《算法图解》
二、动手比什么都重要
最开始的时候遇到一个题目,先别整什么最优解,直接暴力法先做出来,然后再去想如何优化。这一点非常重要。
第一:有时候面试的时候,面试官其实不是在考查你会不会做这道题,而是在看你的思维过程,毕竟你会不会解LeetCode的算法题与你能不能给公司赚钱没有直接关系。
第二:心态,你已经解出这道题了,然后去优化。和你没解出来时的心态完全不同。
另外,动手做这个词出了上面我说的意思,还有另一个含义,就是在初期很多人会陷入一个误区。看别人讲解的视频或者题解,觉得自己懂了,然后不动手实现,最后去面试的时候思路有了,但是一写代码,全是BUG(就是我!),我把它总结成一句话:一看就会、一做就废
怎么解决这个问题,其实大家都自己心里有答案:动手做。但是就是懒!
普通人内心始终藏着两个矛盾:不甘堕落同时又不思进取,认为自己无能普通同时又坚信天生我才。中岛敦在《山月记》中写到:我深怕自己本非美玉,故而不敢加以刻苦琢磨,却又半信自己是块美玉,故又不肯庸庸碌碌,与瓦砾为伍。看书其实就是照镜子,每个人都能从角色中找到自己的影子。
三、有不会做的题一定要花足够多的时间思考
凡是都要从实际出发,如果你是为了求职,那我建议你一道题思考10min以上,还没做出来,就可以标记上,然后去找答案了
四、怎么找答案?
我学习了这么久,难道找答案还不会?还要你教?(中国人的应试技巧在全世界里说第二,没人敢说第一)
- 广泛地搜集:LeetCode题解、B站、大佬的博客
- 先看思路,尝试理解后,自己写出伪代码,然后把题解或视频关掉,动手实现代码。
这里会出现几个问题:
- 理解不了怎么办?
一定是这个up或者写题解的人讲得太Low了,把他的题解关掉,再去看别人的。多看一下不同人写的题解,从不同的角度看待这个问题,每个题目就那么几种解法,大概这个时候就能懂了如果还是没法理解,就把他的代码复制到IDE里面,打断点调试一下。又或者用最朴素的方式===》手推例子。
- 原理是理解了,但是代码实现不了怎么办?
这里大概率是你的语言基础使用的不是很熟练,没关系先去看别人的代码,然后把缺漏的地方补上。比方说,你知道这道题是通过哈希表实现,但是你忘了哈希表是如何创建和使用了。这个时候专门去补上就好了。
- 不管怎么样,你代码是自己写的还是抄大佬的,理解了还是没理解,标记了的题目过几天一定要重新做,独立实现。
- 记录下自己的心得,每次有心得都记下来,定期复习就会发现你之前写的心得有些地方需要调整
五、交流病情
建议参加一个组织,首先可以聚团,这样可以增加刷题的积极性,第二可以互相交流病情,有不懂的也可以找大佬问。
- 作者:Venture
- 链接:https://jintao123.top//article/leetcode_1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。






