面試前,大家都會(huì)開始刷各類網(wǎng)站,希望能在算法之道上有所進(jìn)益,也期待有幸能在面試中碰上原題,而在那么多的網(wǎng)站中,LeetCode 一定是候選學(xué)習(xí)的網(wǎng)站之一。但是 LeetCode 網(wǎng)站上的題量和難度都是大家要面臨的挑戰(zhàn)。很多同學(xué)們剛開始的時(shí)候都非常迷茫,毫無頭緒。還有一部分同學(xué)真的就是在刷題。
其實(shí)網(wǎng)上可以搜到很多“刷題筆記”、“刷 LeetCode 的正確姿勢(shì)”等分享。但是,還是有一些算法題,文字仍無法幫助同學(xué)們 get 到正確的方法或解決問題的邏輯,此時(shí)又該怎么辦?有什么好的解決方法呢?今天,營(yíng)長(zhǎng)要特別為大家介紹一個(gè)名為“LeetCodeAnimation”的開源項(xiàng)目。在這個(gè)項(xiàng)目中,文字解讀并不是主要的,作者把一些 LeetCode 題目或算法原理用非常生動(dòng)、形象的動(dòng)畫形式展現(xiàn)出來。
第一次看到這個(gè)項(xiàng)目的時(shí)候,營(yíng)長(zhǎng)的感受就是作者真的很用心,不僅要整理清晰自己的思路,同時(shí)制作的動(dòng)畫也要讓學(xué)習(xí)者可以清晰、容易的學(xué)會(huì)。制作完成一個(gè)可以說非常費(fèi)心耗神了,相信對(duì)大家的學(xué)習(xí)一定有所幫助,要分享給大家。
比如必會(huì)的排序算法系列之冒泡排序
還有腦洞大開的奇葩算法之猴子排序
十大排序算法總結(jié):算法步驟+動(dòng)圖解讀+算法代碼,一應(yīng)俱全,可以說非常足夠了。
每天一算:29 道,還在持續(xù)更新中
每天一算之逆波蘭表達(dá)式求值
看到這里,大家是不是都很想跟著學(xué)習(xí)一下,也很好奇背后的作者是誰?營(yíng)長(zhǎng)就在這個(gè)周末和項(xiàng)目作者聊了一下這個(gè)項(xiàng)目,關(guān)于項(xiàng)目啟動(dòng)的初衷、面臨的一些困難和未來的計(jì)劃。下面,就為大家介紹一下這個(gè)項(xiàng)目的作者——程序員小吳。
AI科技大本營(yíng):可以先和大家介紹一下自己?jiǎn)幔?/p>
程序員小吳:我畢業(yè)于哈爾濱工業(yè)大學(xué),目前致力于通過動(dòng)畫的形式演示數(shù)據(jù)結(jié)構(gòu)與算法,Github 項(xiàng)目名字是:LeetcodeAnimation。
AI科技大本營(yíng):開始 LeetcodeAnimation 這個(gè)項(xiàng)目的初衷是什么?
程序員小吳:在刷 Leetcode 的過程中,遇到很多有意思和有難度的題目,有時(shí)候自己能做出來,有時(shí)候需要看別人的分析才能解開,但往往隔一段時(shí)間再去看原題的時(shí)候又是一頭霧水。
這時(shí),我在考慮有沒有一種方法可以把抽象的算法具體化、生動(dòng)化,加深或者加快解題的思路?然后就有了現(xiàn)在的 LeetcodeAnimation。
AI科技大本營(yíng):在這個(gè)項(xiàng)目中遇到了哪些困難?
程序員小吳:想起去年曾用自己熟悉的編程語言開源過一個(gè)關(guān)于排序動(dòng)畫的項(xiàng)目(最近發(fā)現(xiàn)被人偷源碼上架 App Store),在 GitHub 上也獲得了不少 star,效果不錯(cuò)。因?yàn)槊看蜗肫饎?dòng)畫場(chǎng)景的時(shí)候就能知道排序的思路,進(jìn)而白板編程寫成相應(yīng)的排序算法代碼。于是,嘗試著將解題的思路用動(dòng)畫的形式記錄下來。
一開始嘗試像之前一樣用 OC 語言編寫動(dòng)畫,但發(fā)現(xiàn)這樣效率太低了,一個(gè)簡(jiǎn)單的題目動(dòng)畫編寫需要耗費(fèi)幾個(gè)星期的時(shí)間。期間也嘗試過JS編寫動(dòng)畫,但效果也不理想。(PPT 做動(dòng)畫)卡在這個(gè)想法上一段時(shí)間了,期間嘗試過很多別的方法,效果都不太理想,偶然間發(fā)現(xiàn)可以使用 PPT 做動(dòng)畫,只要你的想象力夠豐富,只需要幾分鐘便能勾勒出思路動(dòng)畫;做 PPT 是個(gè)細(xì)致的活,前期花了很多時(shí)間摸索 PPT 功能,琢磨怎么把動(dòng)畫做的更好看、思路展現(xiàn)的更加流暢。
AI科技大本營(yíng):LeetcodeAnimation 的動(dòng)畫是如何構(gòu)思的?(一個(gè)題目變成動(dòng)畫)
程序員小吳:做動(dòng)畫前肯定要對(duì)題目已經(jīng)做出并且有自己的理解了,然后加上想象力。比如該題用到了鏈表的概念,那肯定動(dòng)畫就要有鏈表的形象;比如該題用到了滑動(dòng)窗口的概念,那就需要用長(zhǎng)方形來表示窗口。其他的一些細(xì)節(jié)調(diào)整比如動(dòng)畫時(shí)間的設(shè)置、動(dòng)畫出現(xiàn)與消失的方式,這些就需要自己耐心細(xì)致的一幀一幀的調(diào)了。
一道 Leetcode 上的原題從選題到解題,從思路分析到動(dòng)畫制作,還要基于自己的理解,把算法在腦海里轉(zhuǎn)化成動(dòng)畫,再錄制到文章編寫,往往至少要兩個(gè)小時(shí),難一點(diǎn)的題目要更久。
AI科技大本營(yíng):近期 LeetcodeAnimation 這個(gè)項(xiàng)目上有什么新想法嗎?
程序員小吳:很多讀者肯定了這種模式,覺得這種動(dòng)畫的形式大大方便了對(duì)于Leetcode的理解,但也有好多人提出能不能從簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)開始,用動(dòng)畫的形式去解析一下,打好基礎(chǔ),更好的去理解算法。我覺得這個(gè)想法也很棒,所以近期開始更新數(shù)據(jù)結(jié)構(gòu)知識(shí)點(diǎn)。
AI科技大本營(yíng):LeetcodeAnimation 后續(xù)有什么規(guī)劃?
程序員小吳:現(xiàn)在規(guī)劃周末的話多做幾題,多做幾道動(dòng)畫?;蛘哒彝橐黄鹁S護(hù)。
【結(jié)語】目前 Github 項(xiàng)目上已經(jīng)更新了三十多道題目和一些算法總結(jié)性內(nèi)容,雖然這些題目和 LeetCode 的總題量還有一定差距,但是作者也表示“我會(huì)盡力將 LeetCode 上所有的題目都用動(dòng)畫的形式演示出來,計(jì)劃用 3 到 4 年時(shí)間去完成它,期待與你見證這一天!”營(yíng)長(zhǎng)表示同樣很期待,也希望大家都可以喜歡這個(gè)項(xiàng)目,給作者支持和鼓勵(lì)。
-
算法
+關(guān)注
關(guān)注
23文章
4710瀏覽量
95405 -
開源
+關(guān)注
關(guān)注
3文章
3690瀏覽量
43838 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70758
原文標(biāo)題:這樣學(xué)算法,包會(huì)包懂so easy~
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
第一個(gè)DIY開源項(xiàng)目——帶收音功能的插卡式移動(dòng)小音箱制作
分享一些高星開源項(xiàng)目
11個(gè)機(jī)器學(xué)習(xí)開源項(xiàng)目
精選10個(gè)Python開源項(xiàng)目
我們最新的一個(gè)開源項(xiàng)目:SimpleDet

解讀一個(gè)超贊的開源串口虛擬示波器項(xiàng)目

openharmony開源項(xiàng)目
優(yōu)秀的 Verilog/FPGA開源項(xiàng)目介紹(一)

扒一個(gè)超棒的stm32的開源usb-can項(xiàng)目,canable及PCAN固件

2個(gè)帶記憶的伺服電機(jī)的開源項(xiàng)目

一個(gè)簡(jiǎn)單的反射游戲開源項(xiàng)目

ChatGPT了的七個(gè)開源項(xiàng)目

開放原子開源基金會(huì)與20個(gè)開源項(xiàng)目舉行捐贈(zèng)簽約儀式
使用Rust和Nomad進(jìn)行開源游戲服務(wù)器管理
Open Echo:一個(gè)開源的聲納項(xiàng)目

評(píng)論