互联网技术 / 互联网资讯 · 2023年12月17日

如何解决刷题困扰?这个算法基地特别为初学者设计,附带动画效果

如何有效地刷算法题?刷题小白最新打卡地。

算法很重要,但算法也是学起来最难,最令人生畏的。算法千千万,不知该如何下手?

经常看到有人抱怨:刚开始刷题时,自己很迷茫,不知道从何刷起,也看不懂别人写的题解。思路飞来飞去,有时候以为是这个知识点重要,但有时又认为自己走错了路,结果学了半天,越刷越乱,时间、经历都白白浪费。

其实,学算法,刷题蛮干是不行的,需要遵循科学的方法。

学习算法可能并不只是拼智商,可以通过后天的学习进行掌握,这就需要讲究技巧。方法找对了,可以起到事半功倍的效果。

近日,在 Github 上就有人开源了一个项目,该项目是专门为刚开始刷题的同学准备的算法基地,项目作者立志用动画将晦涩难懂的算法说得通俗易懂。上线仅仅两天,收获九百多星。

刷题太遭罪怎么办?这个算法基地专为小白量身打造,还带动画

项目地址:
https://Github.coM/chefyuan/algoRITHM-base

刷题大纲:
https://Mp.weixin.QQ.coM/s/fTMzLRV5Ou2Xf3_bR80J0g

科学刷题,有妙招

项目作者分门别类地将算法分成几大部分:数据结构、字符串匹配算法、排序算法、排序算法秒杀题目、数组篇、求和问题、求次数问题、链表篇、双指针、栈和队列等。依据作者的思路进行刷题,问题应该不大。

在每个算法模块中,包含动画模拟、绘图解析,可谓是图文并茂,用动画的方式将晦涩难懂的算法描述成通俗易懂的语言。

项目作者表示,该项目会一直维护,希望对各位有一丢丢帮助。另外给刚开始刷题,但是不知道从哪里开始刷的同学,整理了一份刷题大纲,可以先按这个顺序刷,刷完之后应该就能入门了。

在字符串匹配算法模块中,项目作者列举了三个示例:字符串匹配 BF 算法、BM 算法、KMP 算法。

刷题太遭罪怎么办?这个算法基地专为小白量身打造,还带动画

以字符串匹配 BF 算法为例,点击相应的算法,会链接到对应的算法主页。在算法主页,项目作者通过诙谐幽默的话语向读者介绍了什么是字符串匹配。然后进入主题,对这一概念进行定义:设 S 和 T 是给定的两个串,在主串 S 中找到模式串 T 的过程称为字符串匹配,如果在主串 S 中找到 模式串 T ,则称匹配成功,函数返回 T 在 S 中首次出现的位置,否则匹配不成功,返回 -1。然后通过图示的方式供读者理解。

刷题太遭罪怎么办?这个算法基地专为小白量身打造,还带动画

在讲到算法时,项目作者采用动图的形式,将抽象的算法具象化,为很多算法研究者带来便利,通过动图,就能很好地理解算法,这也是该项目最具创新的地方。

刷题太遭罪怎么办?这个算法基地专为小白量身打造,还带动画

字符串匹配 BF 算法动图展示。

将算法向读者介绍清楚后,接着就是依据算法解决经典问题,将思路转换为代码。当你确定题目都已经理解,并且分析推导出了题目的解法后,你才开始思考如何将自己的思路转换成代码。

有时,将一个思路转换成算法是很容易且自然的;但有时,有些思路转换成代码,是很有难度的事情。

项目作者将思路转代码这件事做得很好,将题目描述、题目解析、题目代码都讲解的非常清楚,依据作者的思路,很快就能掌握这个算法的精髓,可谓是省时又省力。

在数组篇中,以两数之和为例:项目作者将两数之和分解为题目描述、示例、双指针(暴力)法、解析、题目代码、哈希表、动图解析等内容。

哈希表解析项目作者是这样描述的「哈希表的做法很容易理解,我们只需通过一次循环即可,假如我们的 taRget 值为 9,当前指针指向的值为 2 ,我们只需从哈希表中查找是否含有 7,因为 9 – 2 =7 。如果含有 7 我们直接返回即可,如果不含有则将当前的 2 存入哈希表中,指针移动,指向下一元素。注:key 为元素值,value 为元素索引。」然后就是动图展示。

刷题太遭罪怎么办?这个算法基地专为小白量身打造,还带动画

哈希表解析动图展示。

本文只介绍了其中两个算法示例,刚开始刷题的同学,如果不知道该怎么刷,可以按照项目作者给出的思路,一气刷下来,算法基础应该问题不大,循序渐进,必能取得好的效果。

 

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册