微信号:CSDNnews

介绍:CSDN精彩内容每日推荐.我们关注IT产品研发背后的那些人、技术和故事.

我如何用 21 天在 GitHub 上获取 6300 个

2019-01-08 11:31 程序员小吴

作者 | 程序员小吴

责编 | 胡巍巍

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


LeetcodeAnimation」的萌芽?


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

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


「LeetcodeAnimation」的夭折?


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

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

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

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

小程序

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


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


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

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

第一个动画

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

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


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


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

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

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

  • 加上想象力。

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

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

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

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


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


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

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

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


「LeetcodeAnimation」的成果


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

GitHub地址:https://github.com/MisterBooo/LeetCodeAnimation

项目第一

个人排名第一

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


「LeetcodeAnimation」的长期计划


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

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

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

【完】



 热 文 推 荐 

 一个“垃圾” App,毁掉 70 万艺考生的命运?

 春运抢票靠加速包?试试这个 Python 开源项目吧

☞“iPhone 3 年内必死!”

 1年丢失140亿!你是区块链的受害者吗?|年度安全事件回顾

 华为 36 岁工程师猝死,曾 22 月无休:比挣钱更重要的是活着

 细数阿里达摩院2019年的十个Flag

 Google AI骗过了Google,工程师竟无计可施?

☞ 趣挨踢 | 关于遗留代码的那些事儿

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧! ");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧!
 
CSDN 更多文章 “iPhone 3 年内必死!” 狼性文化遭质疑,那我们当个佛系程序员可好? 比特币拒绝第 340 次“被死亡” Java JDK 收费,Android 也坐不住了,程序员们该咋办? 超过 C++、压制 Java 与 C,Python 拔得 TIOBE
猜您喜欢 Android JavaPoet 动态生成Java源码(1) 程序员的思考:我的 K12(逃学威龙) 郑重提醒:为了春节期间网络畅通,保护通信设施人人有责 尽我所能,为你服务 Linux内核如何替换内核函数并调用原始函数