瓶子君前端進階演算法營首周總結

前端瓶子君發表於2020-04-06

我是瓶子君,在3月31號發起了一個「前端進階演算法」活動,從 0 到 1 構建完整的資料結構與演算法體系。到現在已經過去了一週了,在這一週裡,我們做了:

一、兩篇系列文章:

二、四道演算法題:

第一題:圖解leetcode:合併兩個有序陣列

給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 num1 成為一個有序陣列。

說明:

初始化 nums1nums2 的元素數量分別為 mn 。 你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n )來儲存 nums2 中的元素。

示例:

輸入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6],       n = 3

輸出: [1,2,2,3,5,6]
複製程式碼

答案: github.com/sisterAn/Ja…

第二題:騰訊演算法題:陣列扁平化、去重、排序

已知如下陣列:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];

編寫一個程式將陣列扁平化去併除其中重複部分資料,最終得到一個升序且不重複的陣列

答案: github.com/sisterAn/Ja…

第三題:位元組&leetcode:兩數之和

給定一個整數陣列 nums 和一個目標值 target ,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
複製程式碼

答案: github.com/sisterAn/Ja…

第四題:leetcode:給定兩個陣列,編寫一個函式來計算它們的交集

給定兩個陣列,編寫一個函式來計算它們的交集。

示例 1:

輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2]
複製程式碼

示例 2:

輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [9,4]
複製程式碼

說明:

輸出結果中的每個元素一定是唯一的。 我們可以不考慮輸出結果的順序。

這是今日新題,歡迎在 github.com/sisterAn/Ja… 解答,明天將給出瓶子君的解答

?????

三、為什麼要學演算法?

前端還要學演算法?必須學,而且必須狠狠地學⛽️。現在去大廠面試,資料結構與演算法已經是標配,要是不會的話,那基本與大廠無緣了。

作為一名前端,雖然在平常開發中很少寫演算法,但當我們需要深入前端框架、開發語言、開源庫時,懂演算法將大大提高我們看原始碼的能力。例如 :

  • virtual-dom diff 演算法做了一些約定,後將原先 O(n^3^) 的時間複雜度降到了O(n) ,核心原理就是一個樹的深度優先搜尋
  • babel 這些就是一些編譯原理的 parser 生成抽象語法樹的知識,再將抽象語法樹進行轉換操作生成檔案
  • 瀏覽器的 history,底層可以使用棧來實現
  • webpack 中利用 tree-shaking 優化
  • v8 中的呼叫棧、訊息佇列等等

這些就大量使用了演算法,看懂了就能更好的瞭解它們的效能,更高效的解決問題,提升我們的程式碼質量與思維視野,進階到更高 Level,賺更多錢???。

所以說,學演算法是每個前端進階必備!⛽️⛽️⛽️

現在市面上的演算法資料很多,但針對前端的演算法資料少之又少,所以,這裡我整理了一份適用於前端的資料結構與演算法系列,希望能幫助你從0到1構建完整的資料結構與演算法體系。

本系列預估一共有40多篇,現已經更新了前兩篇。想要更多更快的學習本系列,可以關注公眾號「前端瓶子君」和我的 Github(github.com/sisterAn/Ja…),歡迎在 issus 上提出遇到的演算法題,瓶子君會不定期解答。?

四、認識更多的前端道友,一起進階前端開發

前端演算法集訓營第一期免費開營啦???,免費喲!

在這裡,你可以和志同道合的前端朋友們(500+)一起進階前端演算法,從0到1構建完整的資料結構與演算法體系。

在這裡,瓶子君不僅介紹演算法,還將演算法與前端各個領域進行結合,包括瀏覽器、HTTP、V8、React、Vue原始碼等。

在這裡,你可以每天學習一道大廠演算法題(阿里、騰訊、百度、位元組等等)或 leetcode,瓶子君都會在第二天解答喲!

更多福利等你解鎖???!

掃碼加入【前端演算法交流群交流群】,若二維碼失效後,可在公眾號「前端瓶子君」內回覆「演算法」即時加入???

瓶子君前端進階演算法營首周總結

歡迎專注「前端瓶子君」,這裡不僅有演算法還有各種前端進階必備好文!???

瓶子君前端進階演算法營首周總結

最後,生活不僅有工作、學習,還有詩和遠方,在提升自身的同時,好好的享受人生。

相關文章