擁抱「資料結構」的「演算法」(30) - 完賽心得
前言 耶呼~~~ 終於 30 天了!喔耶!因為參加鐵人賽瘦了 2 公斤,因為寫文章實在太燒腦啦XDDD,一起來看看我的心得感想吧 心得 首先,非常謝謝 iT 邦幫忙鐵人賽,透過這 30 天,讓我好好的嗑了我念書時期的書跟筆記本(差點消化不良),從過程中了解到自己其實還有許多不懂的地方,需要好好認真面對,學會專業的內容之後,再進一步的內化並用自己的話說出來,透過舉例子(想謎題跟例子真的是想破頭XD),分享的動作加深自己的印象,透過 30 天的學習,真的明顯感受到自己的進步,非常開心,也謝謝大家的陪伴,如果有任何理解錯誤或不適合的內容請告訴我,讓我有機會改善 XD 再來想跟大家分享資料結構與演算法對我工作上的影響,原本的我早已把大學學過的東西通通還給老師了,等到真的發現自己在撰寫程式遇到瓶頸時,大概是畢業後的第 6 年,因為過程中其實大多是接觸前端畫面的處理,或是後端的資料庫存取,就是資料的呈現與儲存而已,等到開始接觸一些推薦系統或是 LeetCode 才發現我不會寫程式了耶! 發現自己對於如何將輸入的資料儲存成適合的資料結構會有障礙,因為資料結構會影響到後續程式排序資料或尋找資料的方便性,再來如何讀取特定的資料結構並將資料轉成自己想要呈現的結果,也卡關 XD,就像是二元樹如何使用陣列表示早知忘光,整個不知所以然,只能用慘字形容,只能好好 K 書,發現當年理解的並非真的理解 而演算法的部份更是悲慘到極點,基本排序通通不懂,剛好因為工作內容需要換成其他語言,發現比較底層的語言排序要自己寫耶,如何在一串數字中快速完成排序,又再次卡關,實在是很掉漆,頓時覺得資料結構真的很重要,這個觀念沒有架構好,演算法更是舉步維艱,覺得再這樣下去我可能工作不保,於是有開始念書,但過程中因為自己的拖延症又停擺了,剛好遇到鐵人賽,所以握緊機會參賽,果然滿載而歸 現在面對工作上的需求或是寫 LeetCode 都會先分析需求,再去了解題目的架構,需要搭配哪些資料結構來儲存相關的資料,最後再實作演算法的部分(甚至會有一些混和式的作法),讓結果符合需求,發現念書之後整個思考方式都改變了,感覺基礎觀念真的非常重要,像是求兩數的最大公因數,可以使用暴力法,也可以使用輾轉相除法,去分析兩者之間的優缺點,雖然說自己還有很多不太了解的部分,但會想繼續努力,去加強這些觀念,對於自己工作上或思考事情上面都...