简图记录-算法刷题练习建议与要点

近期在搞刷题练习,记录各类算法刷题练习建议总结

一、算法刷题原则

1、系统刷题,梳理框架

不要零散的刷题,无组织碎片的学习。一定要有一个算法架构,可以参考leetcode分类和各种建议算法分类图,然后自己持续改进 构建自己的算法地图。

2、多做总结,多记笔记

笔记主要是用于复习记忆,不需要多详细,甚至可以用关键字记录。
记录内容:1、关键点 2、算法思路和技巧 3、自己卡住或者出问题的地方

3、勤于复习,长期记忆

要多复习自己的笔记,结合算法地图反复记忆。一天几分钟快速记忆。
一周或者两周 系统复习一次。参考记忆曲线。

4、金益求精,打磨实现

每道题都尽可能最优,leetcode查看前几位的思路和编码实现,对比自己的实现,比较差在哪里,做笔记记录下来。
(面试的时候,是专业还是马虎,是最优解,还是勉强过 评价差距会很大,思路非常关键)

5、一次成功,最求bug free

每次练习都尽可能写出无bug的代码,并且要有意识的总结如何编码和分析能让自己的代码尽可能少bug甚至无bug。
(面试中 一次完整的全过 会有很好的印象)

6、有意识提升打字刷题速度

通过大量有意识的练习提升自己的速度,又快又好,面试一定会给人一种老专家的感觉。
(面试杀手锏)

二、算法刷题流程

1、补充理论基础

如果理论薄弱,可以从教科书或者偏向入门的书籍入手,快速熟悉基础概念。
(避免选择《算法导论》等经典书籍,此类是用于提升研究)

2、leetcode分类 配合面试书籍系统学习

先分类,然后利用一些 针对面试的算法书籍 进行学习,理解概念后分析课后题。
推荐《剑指offer》、《编程之美》、《编程珠玑》、《程序员面试金典》

3、leetcode分类 持续刷题

每一类学习后,开始通过leetcode进行刷题,每类15~20道题,再补充一些top题。逐个击破,勤做笔记。

4、总结每类刷题经验和思路

每类题完成后,要梳理这一类题的分析和解题思路,还有自己犯错的位置。
反复总结复习,融合到算法地图中。

三、算法练习误区

1、算法刷题没那么重要,面试项目经验更重要

无论大公司、小公司。只要面试需要coding,必然会遇到算法题。
要摆正刷题心态,这绝对不是可有可无,是和项目经验同等重要。
甚至当你项目经验不是那么吸引人时,它更重要,除非你做管理岗。

2、“面试造火箭,上岗拧螺丝”,平时用不上

leetcode有些题虽然比较偏,但是大部分题还是基本的算法框架以内的。
能 正确/更快/性能更优/bug free 的 实现一个需求,无疑会大大提升你的编码能力,并且在这个过程 无论对数据结构、算法、甚至你使用的语言特性的理解都会有质的提升。

3、leetcode只要提交成功就ok

不要偷懒,面试的时候 所有东西 都会体现出来,你是否是一名高水平的程序员。

四、算法成长阶段

1、初学乍道阶段(理论理解 3个月内)

学习基础理论知识、掌握基础理论知识和概念,进行了部分实现调试和练习。

2、略懂皮毛阶段(题量的积累 半年内)

刷题超过200道,基本各类算法都见过,看到原题、熟题、同类题,能够独立完成,但是遇到不熟悉、较为复杂的题就容易卡壳,无法搞出来。

3、融汇贯通阶段(答题质量提升 多分析推敲)

500道题以上,leetcode 80%的题都能解决,有的快有点慢,但是都能磕出来。能举一反三。大部分答题能以相对较优解实现。

4、炉火纯青阶段(培养临场竞赛能力)

不再热衷与leetcode普通练习,参加各类算法比赛,能快速分析出命题的考点,边界,此时比拼的是速度。

5、登峰造极(业内知名)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/runafterhit/article/details/106226042