整理 | 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。

【完】

推荐


推荐阅读:

  • 开源项目哪家强?Github年终各大排行榜超级盘点(内附开源项目学习资源)

  • @程序员,安全问题必须重视!

  • 公开课报名 | 基于自定义模板的OCR结果的结构化处理技术

  • 为什么公司宁愿花25K重新招人,也不愿花20K留住老员工?

  • Python 告诉你:熊市将去,牛市要来!

  • 65% 的程序员竟都是自学成才?

  • Python 爬取爱奇艺腾讯视频 250,000 条数据分析为什么李诞不值得了?

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

这样学算法,包会包懂so easy~相关推荐

  1. 快学scala-第七章 包和引入

    知识点: 1. Scala.Java.C++的包的目的都是为了管理大型程序中的名称.与对象或类的定义不同,同一个包可以定义在多个文件当中.或者在同一个文件中,为多个包贡献内容. 2. Scala的包和 ...

  2. 关于动手学深度学习扩展包d2l的安装

    关于动手学深度学习扩展包d2l的安装 方式一 方式二 方式一 下载离线安装包直接放置 d2l_python是动手学深度学习PyTorch中的包,所以他的安装使用离线安装. 链接: [https://g ...

  3. 深度优先算法和广度优先算法以及Networkx包的使用

    深度优先算法和广度优先算法以及Networkx包的使用 深度优先算法 深度优先算法 Networkx包的使用 狄克斯特拉算法(Dijkstra's algorithm) 深度优先算法 graph = ...

  4. TCP的Nagle算法和粘包问题

    1.糊涂窗口综合征(SWS) 2.Nagle算法 3.粘包问题 1.糊涂窗口综合征(SWS) (1)什么是糊涂窗口综合症(Silly Window Syndrome) 当发送端应用进程产生数据很慢.或 ...

  5. 包吃包住包机票的培训你见过吗?云南高通量条形码培训班,截止5月31日

    文章目录 2019年中国云南高通量条形码培训班 划重点 简介 日程 申请 授课教师 课程安排 培训地点 旅行 要求 参考文献 猜你喜欢 写在后面 2019年中国云南高通量条形码培训班 2019年云南高 ...

  6. 《趣题学算法》—第1章1.2节简单的数学计算

    本节书摘来自异步社区<趣题学算法>一书中的第1章1.2节简单的数学计算,作者徐子珊,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.2 简单的数学计算 以上那 ...

  7. 尤雨溪:先学算法,再学源码!

    算法可以说是前端进阶必须要掌握的能力,不仅在工作中可以提高我们的代码运行效率,而且在大厂面试的时候也是必考内容. Object和Map如何选择?Map又是如何实现的? 说说VDOM DIFF的底层原理 ...

  8. 视学算法第六轮送书活动,16本高质量书免费拿走!

    前言 前言 赠送书籍简介 参与活动 抽奖截止时间 总结 前言 本次活动「视学算法」「高性能服务器开发」「编程牛人」「zone7」均送出4本给四位读者,一共16本书给16位读者. 参与抽奖不需要任何转发 ...

  9. Py之chatterbot:python包之Chatterbot包/wxpy包简介、安装、使用方法之详细攻略

    Py之chatterbot:python包之Chatterbot包/wxpy包简介.安装.使用方法之详细攻略 目录 Chatterbot包/wxpy包简介 Chatterbot包/wxpy包安装 Ch ...

  10. 三、Netty的粘包半包问题解决

    一.定义 TCP 传输中,客户端发送数据,实际是把数据写入到了 TCP 的缓存中,粘包和半包也就会在此时产生.客户端给服务端发送了两条消息ABC和DEF,服务端这边的接收会有多少种情况呢?有可能是一次 ...

最新文章

  1. 禁用GPU版本TensorFlow,切换到CPU版本TensorFlow。
  2. 大工计算机基础在线3,大工16秋《计算机应用基础》在线测试3-满分100分.pdf
  3. 二叉搜索树的第 k 大节点(递归,反中序遍历 + 提前返回)
  4. 简单web服务器学习总结
  5. 【C语言学习笔记】——1.起始
  6. go初学者安装echo框架
  7. 捷易拍sdk开发指南.doc_每个Android开发都必须知道的利器
  8. 30 | 套路篇:如何迅速分析出系统I/O的瓶颈在哪里?
  9. php判断与网站访问时间,织梦CMS模板用php判断某个时间段显示和隐藏内容
  10. python 归一化_数据的标准化和归一化
  11. 关于拜读张鑫旭文章,了解的新属性
  12. 【netty】Flink Clickhouse 写入失败 Channel output shutdown Broken pipe
  13. 关于SOA您该知道却不愿知道的十件事
  14. C语言和设计模式(适配器模式)
  15. java编程菜鸟入门01
  16. 【数字基带信号】基于matlab三阶高密度双极型码【含Matlab源码 990期】
  17. 凸包算法 Matlab实现
  18. 算法题解:旅行商(TSP)问题JAVA算法求解
  19. 均匀试验设计表格的问题
  20. 微信小程序错误码:“errcode“:40163和微信小程序-pad block corrupted 问题

热门文章

  1. Quintum 语音网关设置方法
  2. 解析腾讯行政区划API接口数据
  3. 深度学习中的20种卷积
  4. 暑期集训1:C++STL 练习题C:HDU-1263
  5. 小记,springboot项目中自己常用的logback配置文件
  6. Machine Learning——DAY1
  7. MySQL排序原理与MySQL5.6案例分析【转】
  8. Jquery_操作cookies
  9. 大宗商品(Bulk Stock)交易
  10. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**