目的:
找到好工作,甚至是大厂的好工作,提高自己拿到好offer的能力!
一头雾水才是刚开始刷 Leetcode 的正常情况!
我总共刷了 1000 多道算法题目,光在 Leetcode 上就有 600 多道(简单、中等各占一半),还刷了一些其他平台或书籍上应对面试的题目,比如《剑指 offer》、牛客、PAT 等,也都不错
刷了这么多道题目后,明显感觉自己的思维能力有了很大的提升。
面试无非就那么几个重点:树、动态规划、深度 / 广度优先搜索、链表、数组、排序、栈、队列、哈希、字符串等
1.刷题顺序
记住三个要点:
1> 从【学习板块 LeetBook】刷起,
地址:https://leetcode-cn.com/leetbook/
2> 从【简单的】刷起,
3> 从【通过率高】的刷起!
2.利用题解
1> 读思路
2> 读代码
学习更多他人解题的思路,帮助自己打开脑洞,做到 一题多解
3. 精益求精
1> 答出题目就已经很棒了,但还不够。
2> 在保证完全理解题目解法的基础上,请不断优化你的代码,找到更多的思路和更优解,直到击败 100% 的用户吧。
解算法题时,我们要对多种算法分析复杂度,从中选择最优解。
而在工作中,也是如此,一个需求有很多种实现方式,经常也要设计几种不同的方案,分析他们的成本、性能等差异,选择其中最好的一种进行实施。
所以,请认真对待每一道算法题目,把它当成一个工程问题来解决,相信你的思维会逐渐打开,并逐渐掌握编写高性能程序的技巧。
4. 参与竞赛
LeetCode、牛客等网站每周都会开展一次线上算法竞赛,看看谁能在有限时间内最快最多地解题。
在竞赛的过程中,紧张刺激的环境会使我们的精神保持高度集中,能够激发出我们的思维,
从而在有限的时间内进行更多的思考,也能帮助我们适应面试的节奏!!!!
5. 考取证书
但在备战考证的过程中,你有一个学习的目标,会更有动力坚持下去。
在我看来,过程大于结果!
When to Stop?
这也要看你刷题的目的,是找工作还是持续锻炼思维提升自己?
刷题一定要拉长战线、养成习惯,每天最好固定一个时间,坚持做几道题目。
万事开头难,希望大家不要怀疑自己的能力,更不要怀疑自己的智商。算法和编程语言学习一样,找对方法,付出努力,一定会有进步的!