【博客园2018总结帖】21天,在Github上获取 6300 star

大家好,我是程序员小吴。12月初我在GitHub上上传了一个仓库,到现在为止获取了 6300 star,下面和大家聊聊关于项目启动的初衷、面临的一些困难和未来的计划。

「LeetcodeAnimation」的萌芽?

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

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

「LeetcodeAnimation」的夭折?

想起去年曾用自己熟悉的编程语言开源过一个关于排序动画的项目(最近发现被人偷源码上架App Store),在GitHub上也获得了不少star,效果不错:因为每次想起动画场景的时候就能知道排序的思路,进而白板编程写成相应的排序算法代码,因为这个能力,在不少的面试的算法环节能轻松应对。

排序算法演示排序算法演示

项目GitHub地址:https://github.com/MisterBooo/Play-With-Sort-OC

Play-With-Sort-OC地址Play-With-Sort-OC地址 被别人偷上架的项目:)被别人偷上架的项目:)

于是,尝试着将解题的思路用动画的形式记录下来。

一开始尝试像之前一样用OC语言编写动画,但发现这样效率太低了,一个简单的题目动画编写需要耗费几个星期的时间。

期间也学习过小程序,打算使用小程序来显示,可能功夫不到家,技巧不太熟练,效果也不理想。

小程序小程序

百般尝试之后无果,于是这个想法停止了很长一段时间,期间自己依旧笨拙的刷着 LeetCode 。

「LeetcodeAnimation」的开始?【PPT做动画】

直到一个偶然的机会,自己在使用PPT的时候发现PPT的动画很丰富,使用技巧也不是很高深:只要你的想象力够丰富,只需要几分钟便能勾勒出思路动画。

于是,经过一小段时间的学习,加上自己的想象力,马上做出了第一个动画。

第一个动画第一个动画

可以明显的发现,这个动画的交互与形状的设置并不是很好,不过,我认识到了:用PPT动画来演示LeetCode解题思路的确行得通!

当然,做PPT是个细致的活,于是花了一些时间摸索PPT功能,琢磨怎么把动画做的更好看、思路展现的更加流畅。

「LeetcodeAnimation」的动画是如何构思的?【一个题目变成动画】

基本上一道LeetCode上的原题从选题到文章生成的步骤是这样的:

  • 从基本熟悉知识点(图、树、堆、栈、链表、哈希表、记忆搜索、动态规划、指针法、并查集等)中每个知识点挑选出几道经典的题目;

  • 先自己审题、做题,然后查看网上有没有思路更加清晰的解题方式;

  • 加上想象力。

比如该题用到了链表的概念,那肯定动画就要有链表的形象;

比如该题用到了滑动窗口的概念,那就需要用长方形来表示窗口。

比如该题用到了二叉树的概念,那么就需要构造二叉树的图形。

其他的一些细节调整比如动画时间的设置、动画出现与消失的方式,这些就需要自己耐心细致的一帧一帧的调了。

「LeetcodeAnimation」的快乐与痛苦?【算法动图形成】

很多时候,一道题目的解题只花费了几分钟,但做出动画来却要划分一到两个小时不等。

自己是一个在职程序员,工作也比较饱和,动画的制作只能安排在夜深人静的时候,在十一月份的时候经常忙活着做动画做到凌晨一两点。

这个过程痛快却快乐着,毕竟,这是做自己喜欢做的事情:)

「LeetcodeAnimation」的成果

12月初,将项目放到了GitHub上面去,短短两天登上了trending版第一的位置。

项目第一项目第一 个人排名第一个人排名第一

到目前位置,已经有超过 6300 的star。

「LeetcodeAnimation」的长期计划?

正如我在 「LeetcodeAnimation」上写的:我会尽力将LeetCode上所有的题目都用动画的形式演示出来,计划用3到4年时间去完成它,期待与你见证这一天!

所以,基本上我一到两天都会制作一道题目的动画,状态好的周末,一天能做三四题:)

期间得到了很多读者的认可,觉得这种动画的形式大大方便了对于Leetcode的理解。

与此同时,有很多小萌新们觉得能不能从简单的数据结构开始,同样用动画的形式去解析一下。

经过慎重考虑,期间与「掘金」、「小专栏」等大佬们讨论之后,觉得「用动画呈现数据结构与算法」这个想法很棒!

于是,最近开始停止更新「LeetcodeAnimation」,转为从简单的数据结构开始进行动画制作。

但不用担心「LeetcodeAnimation」会不会因此「太监」,更新完数据结构与算法章节后,立马恢复更新「LeetcodeAnimation」,保守估计 2019 年会至少更新 130 道题目,敬请期待:)

程序员小吴的 2019 ?

通过「LeetcodeAnimation」这个项目,认识了很多的算法大佬,有慕课网最受欢迎的 波波老师(liuyubobobo),有大二就开始研究深度学习的学霸等。在与他们沟通交流的过程中,越来越体会到数据结构与算法的魅力,也越来越用动力将自己的公众号更新下去:)

慕课网最受欢迎的波波老师慕课网最受欢迎的波波老师

明年的事情挺充实的:

  • 动画演示完「数据结构与算法」内容
  • 将如何制作动画的过程录制下来,让更多人参与进来
  • 小专栏出一本小书
  • 掘金出一本小册
  • 「LeetcodeAnimation」至少更新 130 篇,争取突破 20,000 star

2018,say hi say goodbye!

2019,与君共勉:)

转载于:https://www.cnblogs.com/fivestudy/p/10194221.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程-线程同步

CreateThread函数与_beginthreadex 函数的联合使用: 为了多线程同步的需要,使每个线程必须具有唯一的状态,CreateThread还不能灵活使用,需要使用C/C运行期库;CreateThread函数参数与_beginthreadex函数对应的&#xff…

最强原创综述!当强化学习邂逅组合优化

『运筹OR帷幄』转载来源:运筹OR帷幄作者:黄含驰未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网&…

7-2 银行排队问题之单窗口“夹塞”版 (30 分)

PTA 排队“夹塞”是引起大家强烈不满的行为,但是这种现象时常存在。在银行的单窗口排队问题中,假设银行只有1个窗口提供服务,所有顾客按到达时间排成一条长龙。当窗口空闲时,下一位顾客即去该窗口处理事务。此时如果已知第i位顾客…

数学认知中的具身进路及其哲学观初探

来源:《科学技术哲学研究》2020年第6期作者:王东(北京工商大学马克思主义学院)吴彤(清华大学人文学院)国家社会科学基金重大课题“科学实践哲学与地方性知识研究”(13&ZD068)从数学思想史以及数学哲学的…

Flink编程入门(二)

Flink 有三种部署模式,分别是 Local、Standalone Cluster 和 Yarn Cluster。 1.1. Local模式 对于 Local 模式来说,JobManager 和 TaskManager 会公用一个 JVM 来完成 Workload。如果要验证一个简单的应用,Local 模式是最方便的。实际应用中大…

7-4 银行排队问题之单队列多窗口加VIP服务 (30 分)

7-4 银行排队问题之单队列多窗口加VIP服务 (30 分) 说实话这道题挺恶心 有意思的,大模拟,主要的思路就是模拟时间轴。 题目描述 假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口…

线程同步-互锁函数

互锁函数: LONG InterlockedIncrement(LONG volatile* Addend):递增指定32位变量,增量位1,可以阻止其他线程同时使用此变量;LONG InterlockedDecrement(LONG volatile* Addend&#…

李德毅院士:探索新一代人工智能产业发展

来源:主线科技2021年5月14日,主线科技联合中国人工智能学会智驾专委会正式发起成立“新一代人工智能物流创新中心”,并携手福佑卡车开启中国首个干线物流自动驾驶商业项目。在此次活动上,中国工程院院士、CAAI名誉理事长、主线科技…

1.修理牧场

农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li​​ 的总和。 但是农夫自己没有锯子,请人锯木的…

线程同步-事件内核对象

事件内核对象:两种状态,受信状态与未受信状态,3个成员; nUsageCount(使用计数);bManualReset(是否人工重置);bSignagled(是否受信)。基…

yii2.0AR两表联查

首先,建两个关联表。 表一 -- Table structure for article -- ---------------------------- DROP TABLE IF EXISTS article; CREATE TABLE article ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 自增id, new text, t_id int(11) DEFAULT NULL COMMENT 关联id, P…

AI产业链全景图!【物联网智商精选】

来源:ittbankAI产业链全景图最后给大家介绍一款英伟达高性能AI边缘计算超级计算机模块:NVIDIA JETSON TX2Jetson TX2是NIVDIA瞄准人工智能在Jetson TK1和TX1推出后的升级TX2的GPU和CPU都进行了升级,内存增加到了8GB、存储增加到了32GB&#…

7-2 哈夫曼编码 (30 分)

2019.12.15更正Best函数样本数据初始化问题并且对代码添加了注释; 2020.11.17更正:题目说明; 原贴发于2019.11.22 注意:本题不是哈夫曼编码裸题,学习哈夫曼编码的同学不要过度依赖本题算法,只有参考价值; 给…

通用AI咋发展?向大脑学习是条路子

来源:中国科学报作者:郑金武编辑:赵路排版:志海作为代表自然界拥有最通用智能的生物大脑,可以借助低功耗和少量后天数据,实现在复杂环境下执行复杂任务的智能行为。因此,探索生物大脑智能认知的…

Oracle:select into 查询没有记录的解决办法

在数据库编程中,select into 语句可以将数据库的某些值赋值给程序的变量,使用起来非常方便。但很多时候也会遇到查询出来没有记录的情况,这时程序会出错。 可以使用 exception when NO_DATA_FOUND then 但是如merge into using 查不到时可以使…

MFC随机博弈黑白棋

随机博弈黑白棋 随机博弈黑白棋 TxyITxs | 随机博弈黑白棋 | 2019.04.21 摘要 通过随机落子,实现黑白棋的博弈。无任何落子规则,棋子死活与围棋中棋子的死活一致,即存在至少一口气。动态模拟双方博弈,但棋盘无落子位置时停止。…

7-3 喊山 (30 分)

搞了好几天心态的一道题,还是菜,原因就是想复杂了,第一次遇到了内存超限的问题,把邻接矩阵由二维数组换成了vector才过的。 7-3 喊山 (30 分) 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂…

章鱼有9个大脑能编辑基因,智商高到无法理解,为何没发展出文明

来源:科学杂志按照进化论的观点,生物演化出脊椎,是发展出更高智商的敲门砖。因为脊椎让生物体内的神经高度集中,反应速度明显加快,并且还有利于大脑向更加高级的结构演化。事实也确实如此,如果盘点世界上最…

Python运算符与编码

while循环 1.基本循环while 条件: 循环体如果条件为真&#xff0c;那么循环则执行如果条件为假&#xff0c;那么循环不执行 while循环代码体现形式while 3>2:print(在人间) num 1  while num<101:  print(num)  num num 1 break 终止  continue 跳出本次循环,…

Windows坐标系统

坐标映射方式是设备环境中的一个重要属性&#xff0c;默认值为MM_TEXT&#xff0c;即左上角为原点&#xff0c;右方为x轴正方向&#xff0c;下方为y轴正方向&#xff0c;这种坐标系使用的单位是像素&#xff0c;其好处是窗口中的每一点的坐标不会因为窗口大小而改变。 映射方法…