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

解讀一個超贊的開源串口虛擬示波器項目

openharmony開源項目
扒一個超棒的stm32的開源usb-can項目,canable及PCAN固件

ChatGPT了的七個開源項目

開放原子開源基金會與20個開源項目舉行捐贈簽約儀式
Open Echo:一個開源的聲納項目

評論