查看原文
其他

这样学算法,包会包懂so easy~

Jane AI科技大本营 2019-02-15


整理 | Jane

出品 | AI科技大本营


面试前,大家都会开始刷各类网站,希望能在算法之道上有所进益,也期待有幸能在面试中碰上原题,而在那么多的网站中,LeetCode 一定是候选学习的网站之一。但是 LeetCode 网站上的题量和难度都是大家要面临的挑战。很多同学们刚开始的时候都非常迷茫,毫无头绪。还有一部分同学真的就是在刷题。


其实网上可以搜到很多“刷题笔记”、“刷 LeetCode 的正确姿势”等分享。但是,还是有一些算法题,文字仍无法帮助同学们 get 到正确的方法或解决问题的逻辑,此时又该怎么办?有什么好的解决方法呢?今天,营长要特别为大家介绍一个名为“LeetCodeAnimation”的开源项目。在这个项目中,文字解读并不是主要的,作者把一些 LeetCode 题目或算法原理用非常生动、形象的动画形式展现出来。


第一次看到这个项目的时候,营长的感受就是作者真的很用心,不仅要整理清晰自己的思路,同时制作的动画也要让学习者可以清晰、容易的学会。制作完成一个可以说非常费心耗神了,相信对大家的学习一定有所帮助,要分享给大家。


比如必会的排序算法系列之冒泡排序



还有脑洞大开的奇葩算法之猴子排序

     


十大排序算法总结:算法步骤+动图解读+算法代码,一应俱全,可以说非常足够了。                    


每天一算:29 道,还在持续更新中

     

每天一算之逆波兰表达式求值



看到这里,大家是不是都很想跟着学习一下,也很好奇背后的作者是谁?营长就在这个周末和项目作者聊了一下这个项目,关于项目启动的初衷、面临的一些困难和未来的计划。下面,就为大家介绍一下这个项目的作者——程序员小吴。


AI科技大本营:可以先和大家介绍一下自己吗?


程序员小吴:我毕业于哈尔滨工业大学,目前致力于通过动画的形式演示数据结构与算法,Github 项目名字是:LeetcodeAnimation。


AI科技大本营:开始 LeetcodeAnimation 这个项目的初衷是什么?


程序员小吴:在刷 Leetcode 的过程中,遇到很多有意思和有难度的题目,有时候自己能做出来,有时候需要看别人的分析才能解开,但往往隔一段时间再去看原题的时候又是一头雾水。


这时,我在考虑有没有一种方法可以把抽象的算法具体化、生动化,加深或者加快解题的思路?然后就有了现在的 LeetcodeAnimation。


AI科技大本营:在这个项目中遇到了哪些困难?


程序员小吴:想起去年曾用自己熟悉的编程语言开源过一个关于排序动画的项目(最近发现被人偷源码上架 App Store),在 GitHub 上也获得了不少 star,效果不错。因为每次想起动画场景的时候就能知道排序的思路,进而白板编程写成相应的排序算法代码。于是,尝试着将解题的思路用动画的形式记录下来。


一开始尝试像之前一样用 OC 语言编写动画,但发现这样效率太低了,一个简单的题目动画编写需要耗费几个星期的时间。期间也尝试过JS编写动画,但效果也不理想。(PPT 做动画)卡在这个想法上一段时间了,期间尝试过很多别的方法,效果都不太理想,偶然间发现可以使用 PPT 做动画,只要你的想象力够丰富,只需要几分钟便能勾勒出思路动画;做 PPT 是个细致的活,前期花了很多时间摸索 PPT 功能,琢磨怎么把动画做的更好看、思路展现的更加流畅。


AI科技大本营:LeetcodeAnimation 的动画是如何构思的?(一个题目变成动画)


程序员小吴:做动画前肯定要对题目已经做出并且有自己的理解了,然后加上想象力。比如该题用到了链表的概念,那肯定动画就要有链表的形象;比如该题用到了滑动窗口的概念,那就需要用长方形来表示窗口。其他的一些细节调整比如动画时间的设置、动画出现与消失的方式,这些就需要自己耐心细致的一帧一帧的调了。


一道 Leetcode 上的原题从选题到解题,从思路分析到动画制作,还要基于自己的理解,把算法在脑海里转化成动画,再录制到文章编写,往往至少要两个小时,难一点的题目要更久。


AI科技大本营:近期 LeetcodeAnimation 这个项目上有什么新想法吗?


程序员小吴:很多读者肯定了这种模式,觉得这种动画的形式大大方便了对于Leetcode的理解,但也有好多人提出能不能从简单的数据结构开始,用动画的形式去解析一下,打好基础,更好的去理解算法。我觉得这个想法也很棒,所以近期开始更新数据结构知识点。


AI科技大本营:LeetcodeAnimation 后续有什么规划?


程序员小吴:现在规划周末的话多做几题,多做几道动画。或者找同伴一起维护。


【结语】目前 Github 项目上已经更新了三十多道题目和一些算法总结性内容,虽然这些题目和 LeetCode 的总题量还有一定差距,但是作者也表示“我会尽力将 LeetCode 上所有的题目都用动画的形式演示出来,计划用 3 到 4 年时间去完成它,期待与你见证这一天!”营长表示同样很期待,也希望大家都可以喜欢这个项目,给作者支持和鼓励。


迫不及待要戳的 Github 项目链接:

https://github.com/MisterBooo/LeetCodeAnimation/blob/master/Readme.md



本文为 AI科技大本营原创稿件,转载请联系微信1092722531。


【完】


推荐





推荐阅读:


点击“阅读原文”,打开APP 阅读更顺畅。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存