这样学算法,包会包懂so easy~
整理 | 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~相关推荐
- 快学scala-第七章 包和引入
知识点: 1. Scala.Java.C++的包的目的都是为了管理大型程序中的名称.与对象或类的定义不同,同一个包可以定义在多个文件当中.或者在同一个文件中,为多个包贡献内容. 2. Scala的包和 ...
- 关于动手学深度学习扩展包d2l的安装
关于动手学深度学习扩展包d2l的安装 方式一 方式二 方式一 下载离线安装包直接放置 d2l_python是动手学深度学习PyTorch中的包,所以他的安装使用离线安装. 链接: [https://g ...
- 深度优先算法和广度优先算法以及Networkx包的使用
深度优先算法和广度优先算法以及Networkx包的使用 深度优先算法 深度优先算法 Networkx包的使用 狄克斯特拉算法(Dijkstra's algorithm) 深度优先算法 graph = ...
- TCP的Nagle算法和粘包问题
1.糊涂窗口综合征(SWS) 2.Nagle算法 3.粘包问题 1.糊涂窗口综合征(SWS) (1)什么是糊涂窗口综合症(Silly Window Syndrome) 当发送端应用进程产生数据很慢.或 ...
- 包吃包住包机票的培训你见过吗?云南高通量条形码培训班,截止5月31日
文章目录 2019年中国云南高通量条形码培训班 划重点 简介 日程 申请 授课教师 课程安排 培训地点 旅行 要求 参考文献 猜你喜欢 写在后面 2019年中国云南高通量条形码培训班 2019年云南高 ...
- 《趣题学算法》—第1章1.2节简单的数学计算
本节书摘来自异步社区<趣题学算法>一书中的第1章1.2节简单的数学计算,作者徐子珊,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.2 简单的数学计算 以上那 ...
- 尤雨溪:先学算法,再学源码!
算法可以说是前端进阶必须要掌握的能力,不仅在工作中可以提高我们的代码运行效率,而且在大厂面试的时候也是必考内容. Object和Map如何选择?Map又是如何实现的? 说说VDOM DIFF的底层原理 ...
- 视学算法第六轮送书活动,16本高质量书免费拿走!
前言 前言 赠送书籍简介 参与活动 抽奖截止时间 总结 前言 本次活动「视学算法」「高性能服务器开发」「编程牛人」「zone7」均送出4本给四位读者,一共16本书给16位读者. 参与抽奖不需要任何转发 ...
- Py之chatterbot:python包之Chatterbot包/wxpy包简介、安装、使用方法之详细攻略
Py之chatterbot:python包之Chatterbot包/wxpy包简介.安装.使用方法之详细攻略 目录 Chatterbot包/wxpy包简介 Chatterbot包/wxpy包安装 Ch ...
- 三、Netty的粘包半包问题解决
一.定义 TCP 传输中,客户端发送数据,实际是把数据写入到了 TCP 的缓存中,粘包和半包也就会在此时产生.客户端给服务端发送了两条消息ABC和DEF,服务端这边的接收会有多少种情况呢?有可能是一次 ...
最新文章
- 禁用GPU版本TensorFlow,切换到CPU版本TensorFlow。
- 大工计算机基础在线3,大工16秋《计算机应用基础》在线测试3-满分100分.pdf
- 二叉搜索树的第 k 大节点(递归,反中序遍历 + 提前返回)
- 简单web服务器学习总结
- 【C语言学习笔记】——1.起始
- go初学者安装echo框架
- 捷易拍sdk开发指南.doc_每个Android开发都必须知道的利器
- 30 | 套路篇:如何迅速分析出系统I/O的瓶颈在哪里?
- php判断与网站访问时间,织梦CMS模板用php判断某个时间段显示和隐藏内容
- python 归一化_数据的标准化和归一化
- 关于拜读张鑫旭文章,了解的新属性
- 【netty】Flink Clickhouse 写入失败 Channel output shutdown Broken pipe
- 关于SOA您该知道却不愿知道的十件事
- C语言和设计模式(适配器模式)
- java编程菜鸟入门01
- 【数字基带信号】基于matlab三阶高密度双极型码【含Matlab源码 990期】
- 凸包算法 Matlab实现
- 算法题解:旅行商(TSP)问题JAVA算法求解
- 均匀试验设计表格的问题
- 微信小程序错误码:“errcode“:40163和微信小程序-pad block corrupted 问题