既然我們要學習算法與數據結構窃植,肯定要有一定的策略,就像行軍打仗一樣荐糜,要有規(guī)劃巷怜,這樣才能系統(tǒng)高效的完成我們的學習的目的,否則我們就會像無頭蒼蠅一樣暴氏,這看一下延塑,哪看一下,最終學到的東西也沒有重點偏序,不系統(tǒng)页畦。那我們如何抓住重點,來學習我們的算法與數據結構呢研儒?
根據日常的工作以及面試情況來說豫缨,只要學會下面這些知識,足以對付大部分實際問題端朵。
1)10個數據結構:數組好芭、鏈表、棧冲呢、隊列舍败、散列表、二叉樹敬拓、堆邻薯、跳表、圖乘凸、Trie樹
2) 10個算法:遞歸厕诡、排序、二分查找营勤、搜索灵嫌、哈希算法壹罚、貪心算法、分治算法寿羞、回溯算法猖凛、動態(tài)規(guī)劃、字符串匹配算法绪穆。
學習這些知識的時候也多注重理解辨泳,不能死記硬背,多思考一下這些知識的特點以及它們的適用場景玖院,最終達到舉一反三的程度漠吻。還要有一些學習的技巧,能夠達到事半功倍的效果司恳。
- 邊學邊練,適度刷題绍傲。學習算法的時候一定要多動手敲一下扔傅,這樣才能深刻的理解算法。我們在剛學習編程的時候都是看著書本敲烫饼,然后慢慢自己開始嘗試脫離書本敲代碼猎塞,慢慢的才入了編程的大門,學習什么知識都要多動手練杠纵,這樣才能更快更深入的理解荠耽。同樣可以在leetcode做一下相關算法的題目,來強化自己對算法知識點的理解比藻。
- 多問铝量,多思考。 如果有什么不懂得地方银亲,要多思考慢叨,最好能找到幾個一塊學習的,這樣可以互相討論學習务蝠,雖然現在畢業(yè)之后就沒有同學了拍谐,但是可以與公司同事或者在網上的技術論壇與人討論技術。
- 打怪升級法馏段。把學習當做是一種樂趣轩拨,我們玩游戲都是打怪升級,把上面所說的每個數據結構與算法當做是BOSS院喜,一個一個的攻克亡蓉,早晚你會通關的。
- 多總結知識點够坐,沉淀這些知識寸宵。不要想著一口能夠把這些知識點給吃完崖面,如果不懂就多花點時間去學。書讀百遍梯影,其義自見巫员。相信我們只要愿意花時間去學校,肯定能夠把這些知識點給學會甲棍。
總結了我們要學習的重點知識點简识,學習的技巧,接下來就要堅持打怪感猛,把這些Boss全部給搞定七扰。加油,你行的E惆住>弊摺!