零基础新手学习算法Leetcode刷题指南
刷算法到底在刷什么?這是很多人會想不明白的。而算法為什么這么重要,今天想說下這塊內(nèi)容。市面上都在說不要重復(fù)造輪子,這里說的不是你在一開始就不造輪子。
我們學(xué)習(xí)成長的過程是,先模仿,后改造,最終創(chuàng)新。所以每個人都在重復(fù)造輪子,只是剛開始階段,如果你一直在造輪子,那么說明你不是站在巨人的肩膀上。所以這里我想先說下,大學(xué)時期就是要多造輪子,多刷算法題,扎實的基礎(chǔ),是建造代碼世界的地基。
地基不牢,地動山搖,沒人敢要你去開發(fā),因為稍不注意,你就會讓整個項目崩塌。
而刷題是怎么個過程呢?先認識到算法到底學(xué)什么?
第一個就是抽象能力。這點非常重要。在刷算法的時候,簡單的加減乘除,訓(xùn)練的是你的代碼能力,以及考慮問題的全面性,邏輯思維。當(dāng)復(fù)雜的像線路規(guī)劃,就不是簡單的邏輯問題,還有你的抽象表達能力。
循序漸進的去刷題,會讓自己了解到自己的代碼缺陷,補充自己考慮不全的地方,以及代碼的可靠性。這就是刷題第一個我們訓(xùn)練的能力。
我們在寫代碼的時候,考慮正常情況沒問題,大多數(shù)就是沒有注意到異常。而像Google,微軟開發(fā)工程師,一樣會埋下Bug,代碼是寫不完備的,但是能夠考慮周全,是寫代碼的人基礎(chǔ)能力,如果case項沒寫全,if條件沒窮舉,那么就是一個隱性的Bug。
當(dāng)你思考問題越來越全面,仔細,把該想到的,大多都考慮到了,這個代碼就是高質(zhì)量的,也是程序員老人值錢的地方,他們知道你這個代碼缺哪些補充條件,需要做一些判斷處理。
第二個就是嚴(yán)謹(jǐn)。刷算法題就是會讓你不斷地開動腦筋,去思考怎么實現(xiàn)功能,同時還要考慮各種數(shù)據(jù)輸入,出現(xiàn)的異常狀況。Leetcode刷題就如同打怪一樣,隨著不斷地刷題,你的知識庫會更加牢靠,你會更加順手的去用手里的武器,這里指的是各種數(shù)據(jù)結(jié)構(gòu),類型,以及系統(tǒng)提供的庫,快速幫助你完成目標(biāo)。
基礎(chǔ)的算法刷完,后面你遇見一些實際問題,比如寫了一個網(wǎng)站,做數(shù)據(jù)庫查詢,你就能知道有哪些,大概哪個符合要求。你憑空想一個算法,就不如在你已知的基礎(chǔ)上做改進。
我在剛畢業(yè)時候,公司讓開發(fā)一個百家姓,要做智能查詢的。代碼上用的是二叉樹查找法,我在基礎(chǔ)上做了一個哈希映射加二叉法提高效率。
這些都是在數(shù)據(jù)結(jié)構(gòu)和算法中你會接觸到的一些經(jīng)典方案,時間和空間看怎么交換。很多時候我們看到的查詢表,你說計算機算不出來嗎?可以的,但是沒必要,存儲一個表格就能輕松的快速的直接查詢的方法給出答案,在合理狀態(tài)來就是最優(yōu)解。
刷題是訓(xùn)練自己的思維,遇見問題時候的解決能力,當(dāng)你不會的時候,就會去開動腦筋,進行搜索,最終搞定問題,而這個就是刷題真正的意義所在。讓你最終有了一套解決問題的能力,技巧。
這是我想說的,下來我分享一些Leetcode的資料,大家感興趣的想學(xué)習(xí)的可以去學(xué)了。
第一個是中文網(wǎng)站 https://leetcode-cn.com/
上面有各種題,你也可以用各種語言去編寫實現(xiàn),如果不會,它有相對應(yīng)的講解視頻,作為學(xué)習(xí)非常方便了。
第二個是動畫版本演示學(xué)習(xí),更加直觀一些。(文末有獲取方式)
第三個是文字版本的講解,詳細的講解Leetcode每個題的解法,實現(xiàn)方式。(文末有獲取方式)
第四個,分享一個B站視頻,大家有時間,時間充足下可以學(xué)習(xí)。
地址:https://www.bilibili.com/video/BV1GW411Q77S
最后說下我的b站,主要講解計算機知識,職場經(jīng)驗,面試技巧,大家可以來圍觀了。B站搜索 程序員職場大萌哥? ,就可以看見我了。
最后分享個好的課程,大家感興趣可以圍觀學(xué)習(xí)了。
長按下方圖片,進行學(xué)習(xí)。
本文中的資料,后臺回復(fù) Leetcode刷題 獲取全部資料。
~~ end not end ~~
職場老鳥,互聯(lián)網(wǎng)十年從業(yè)生涯,分享 [Java,Python,安卓,AI,爬蟲] 技術(shù)文章,學(xué)習(xí)資料, 熱點趣聞等。關(guān)注回復(fù)?1024?Python?電子書大全?面試資料,給你一份私藏的程序員好禮,永遠更新中!趕緊來關(guān)注哦!
總結(jié)
以上是生活随笔為你收集整理的零基础新手学习算法Leetcode刷题指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人脸检测研究最新进展
- 下一篇: 微信 第三方登录