日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

小白一路走来,连续刷题三年,谈谈我的算法学习经验

發(fā)布時(shí)間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小白一路走来,连续刷题三年,谈谈我的算法学习经验 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)結(jié)構(gòu)與算法應(yīng)該算是一個(gè)比較難的模塊,從小白一路走過來,從大一連續(xù)刷過好幾年題,看過挺多書,踩過挺多坑,也漲了一些經(jīng)驗(yàn),姑且在這里分析一波對(duì)數(shù)據(jù)結(jié)構(gòu)與算法 的學(xué)習(xí)經(jīng)驗(yàn),請(qǐng)耐心看完,相信對(duì)你會(huì)有所幫助。

對(duì)于初學(xué)者來說,我認(rèn)為選擇一本合適、不錯(cuò)的算法書是非常非常重要的,從大一到現(xiàn)在我也看過不少的算法書,當(dāng)然在學(xué)習(xí)算法的過程中也走過不少坑,刷了很少題,總結(jié)了不少經(jīng)驗(yàn),下面說說
我的一些經(jīng)驗(yàn)吧,請(qǐng)耐心看完,相信一定對(duì)你有所幫助。

書籍視頻推薦

小白入門:書單、視頻推薦

數(shù)據(jù)結(jié)構(gòu)與算法相關(guān)的書籍應(yīng)該是我看的最多的一種數(shù)據(jù)吧,從大一到現(xiàn)在,從未間斷過,下面就介紹下從大一到現(xiàn)在都看過哪些自認(rèn)為優(yōu)秀的書籍,注意,我不知道適不適合你,但我覺得看的過程中很舒服。

1、數(shù)據(jù)結(jié)構(gòu)與算法分析(c 語言描述版)

我相信大部分人大學(xué)看的教程都是清華大學(xué)出版社嚴(yán)蔚敏寫的那本書,說實(shí)話,作為初學(xué)者,那本書我沒能堅(jiān)持看下去,可能比較適合大佬看吧。我自己買了一本《數(shù)據(jù)結(jié)構(gòu)與算法分析(c 語言描述版)》,挺薄的,不過感覺很棒,這本書讓我學(xué)到了很多,個(gè)人感覺也挺容易懂的,代碼實(shí)現(xiàn)是采用 C 語言來實(shí)現(xiàn)的,不是偽代碼,如果你想學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),我覺得這本書是個(gè)不錯(cuò)的選擇。班級(jí)里有挺多人看了《大話數(shù)據(jù)結(jié)構(gòu)》,挺他們說也挺不錯(cuò),不過我沒看過。

2、挑戰(zhàn)程序設(shè)計(jì)競(jìng)賽

這邊書也是大一時(shí)看的,學(xué)習(xí)算法,刷一些題是必須的,所謂3分理論7分實(shí)踐。如果你想刷題,我挺推薦這本書,里面分初級(jí)、中級(jí)到高級(jí)。雖然每道題沒有講的特別詳細(xì),但當(dāng)時(shí)都看懂了,真心不錯(cuò)。不過高級(jí)那部分我是沒看,初級(jí)和中級(jí)看著挺舒服。也是學(xué)到挺多的,推薦給大家。

3、算法(第四版)


這本書估計(jì)是賣的最火的一本書吧,采用 Java 語言來實(shí)現(xiàn)的,不過在看這本書之前,我覺得你得要有一定的算法基礎(chǔ),例如你得知道啥是隊(duì)列,啥是棧。我不認(rèn)為這是本入門書籍,所以,你可以先學(xué)習(xí)
我上門推薦的那些書,有一定的基礎(chǔ)之后,再來學(xué)習(xí)這本。這本書主要是用大量的圖片來演示算法,讓人覺得比較友好。

4、編程之美


不用說,很美,這本書是我今年剛?cè)胧挚吹?#xff0c;只能用強(qiáng)烈推薦來形容,在這本書里,學(xué)到了挺多技巧,里面列舉的題也不是特別難,目前看了 80%,真香。剛開始我聽別人說如果要準(zhǔn)備面試谷歌什么的建議看,我以為很難,遲遲沒買來看,不過,我看的過程中,感覺還好,相信你也能看的懂,想學(xué)習(xí)算法、刷題的,強(qiáng)烈推薦。

5、編程珠璣


這本老早就聽別人說過了,去年看的,不過也是看了80%左右,和編程之美一樣,強(qiáng)烈推薦,這本書里的題,說實(shí)話,感覺比編程之美有意思,

當(dāng)然,數(shù)據(jù)結(jié)構(gòu)與算法的還有很多優(yōu)秀的書籍,我自己也看過不少,不過以上這些,我覺得很不錯(cuò)。自己也買過算法導(dǎo)論等,不過,沒看的下去。

這些我也都準(zhǔn)備了電子書籍,

不過我發(fā)現(xiàn)放百度鏈接容易失效,如果你感興趣的話,或許可以關(guān)注我的公眾號(hào):苦逼的碼農(nóng),回復(fù)“電子書”獲取。

2、視頻介紹

作為初學(xué)者,學(xué)習(xí)算法是一個(gè)相對(duì)比較艱難的過程,比起看書,可能看視頻會(huì)相對(duì)好理解點(diǎn),當(dāng)然,這里引人而異,有些人喜歡看書不喜歡看視頻,這里主要是根據(jù)你自身來選擇了。

說起視頻,我自己看的也不多,我是屬于喜歡看書的那一種,不過我覺得這些這些視頻還不錯(cuò),推薦給大家。

1、牛客網(wǎng)有個(gè)初級(jí)和進(jìn)階班的視頻,我覺得很不錯(cuò),不過我看過進(jìn)階班的,初級(jí)班的沒看過,感覺還不錯(cuò),截圖如下:

2、直通bat班:這個(gè)我覺得也不錯(cuò),也是適合新手入門的那種

這些視頻我都有保存在我的百度云盤,不過可能涉及的版權(quán)問題,一下子就鏈接失效,所以就不直接貼地址了,感興趣的可以在我的公眾號(hào):苦逼的碼農(nóng),回復(fù)“數(shù)據(jù)結(jié)構(gòu)與算法”
來獲取。

當(dāng)然,而已非常歡迎大家關(guān)注我的公眾號(hào),我的公眾號(hào)主要寫算法計(jì)算機(jī)基礎(chǔ)Java等相關(guān)文章,已經(jīng)有 100 多篇原創(chuàng)文章了,總結(jié)了很多與算法相關(guān)的技巧。好多文章被各大公眾號(hào)轉(zhuǎn)載。

刷題幾年,學(xué)習(xí)算法經(jīng)驗(yàn)分享

上面只是介紹了一些書籍和視頻,從另一個(gè)角度講,書籍和視頻只是一個(gè)工具,從大一學(xué)習(xí)算法到現(xiàn)在,刷了很多題,也是積累了一些經(jīng)驗(yàn),下面跟大家分享下我的經(jīng)驗(yàn)吧,請(qǐng)耐心看完,相信你會(huì)有所收獲

切勿盲目刷題:刷題前的知識(shí)積累

說實(shí)話,想要提高自己的算法,我覺得就是腳踏實(shí)地著多動(dòng)手去刷題,多刷題。

但是,如果你是小白,也就是說,你連常見的數(shù)據(jù)結(jié)構(gòu),如鏈表、樹以及常見的算法思想,如遞歸、枚舉、動(dòng)態(tài)規(guī)劃這些都沒學(xué)過,那么,我不建議你盲目瘋狂著去刷題的。而是先去找本書先去學(xué)習(xí)這些必要的知識(shí),然后再去刷題。
因?yàn)?#xff0c;如果這些基礎(chǔ)都不懂的話,估計(jì)一道題做了幾個(gè)小時(shí),然后看答案都不不懂,做題沒有任何思路,這是很難受的。久而久之,估計(jì)沒啥動(dòng)力了,我剛開始就是這樣,一道題答案看一天,然而還是不大懂,什么回溯啊,暴力啊,還不知道是啥意思。

也就是說,假如你要去諸如leetcode這些網(wǎng)站刷題,那么,你要先具備一定的基礎(chǔ),這些基礎(chǔ)包括:

1、常見數(shù)據(jù)結(jié)構(gòu):鏈表、樹(如二叉樹)。(是的,鏈表和二叉樹是重點(diǎn),圖這些可以先放著)

2、常見算法思想:貪婪法、分治法、窮舉法、動(dòng)態(tài)規(guī)劃,回溯法。(貪婪、窮舉、分治是基礎(chǔ),動(dòng)態(tài)規(guī)劃有難度,可以先放著)

以上列出來的算是最基本的吧。就是說你刷題之前,要把這些過一遍再去刷題。如果你連這些最基本的都不知道的話,那么你再刷題的過程中,會(huì)很難受的,思路也會(huì)相對(duì)比較少。

總之,千萬不要急,先把這些基本的過一遍,力求理解,再去刷題。這些知識(shí)點(diǎn),我上面已經(jīng)給你們推薦了對(duì)應(yīng)的書籍和視頻了,就不繼續(xù)說了。

所以你們千萬別指望以為自己把這些思想學(xué)完之后刷題會(huì)很牛,只有多刷題,只有多動(dòng)手實(shí)踐,你的靈敏度才會(huì)提高起來。

總結(jié)下:

提高數(shù)據(jù)結(jié)構(gòu)與算法沒啥捷徑,最好的捷徑就是多刷題。但是,刷題的前提是你要先學(xué)會(huì)一些基本的數(shù)據(jù)結(jié)構(gòu)與算法思想。

AC不是目的,我們要追求完美

如何刷題?如何對(duì)待一道算法題?

我覺得,在做題的時(shí)候,一定要追求完美,千萬不要把一道題做出來之后,提交通過,然后就趕緊下一道。我認(rèn)為這意義不大,因?yàn)橐坏李}的解法太多了,有些解法態(tài)粗糙了,我們應(yīng)該要尋找最優(yōu)的方法。

算法能力的提升和做題的數(shù)量是有一定的關(guān)系,但并不是線性關(guān)系。也就是說,在做題的時(shí)候,要力求一題多解,如果自己實(shí)在想不出來其他辦法了,可以去看看別人是怎么做的,千萬不要覺得模仿別人的做法是件丟人的事。

我做題的時(shí)候,我一看到一道題,可能第一想法就是用很粗糙的方式做,因?yàn)楹芏囝}采用暴力法都會(huì)很容易做,就是時(shí)間復(fù)雜度很高。之后,我就會(huì)慢慢思考,看看有沒其他方法來降低時(shí)間復(fù)雜度或空間復(fù)雜度。最后,我會(huì)去看一下別人的做法,當(dāng)然,并不是每道題都會(huì)這樣執(zhí)行。

衡量一道算法題的好壞無非就是時(shí)間復(fù)雜度空間復(fù)雜度,所以我們要力求完美,就要把這兩個(gè)降到最低,令他們相輔相成。

我舉道例題吧:

問題: 一只青蛙一次可以跳上1級(jí)臺(tái)階,也可以跳上2級(jí)。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法?

這道題我在以前的分章分析過,不懂的可以先看下之前寫的:遞歸與動(dòng)態(tài)規(guī)劃---基礎(chǔ)篇1

方法1::暴力遞歸

這道題不難,或許你會(huì)采取下面的做法:

public static int solve(int n){if(n == 1 || n == 2){return n;}else if(n <= 0){return 0;}else{return solve(n-1) + solve(n-2);} }

這種做法的時(shí)間復(fù)雜度很高,指數(shù)級(jí)別了。但是如果你提交之后僥幸通過了,然后你就接著下一道題了,那么你就要好好想想了。

方法二:空間換時(shí)間

力求完美,我們可以考慮用空間換時(shí)間:這道題如何你去仔細(xì)想一想,會(huì)發(fā)現(xiàn)有很多是重復(fù)執(zhí)行了。所以可以采取下面的方法:

//用一個(gè)HashMap來保存已經(jīng)計(jì)算過的狀態(tài) static Map<Integer,Integer> map = new HashMap(); public static int solve(int n){if(n <= 0)return 0;else if(n <= 2){return n;}else{//是否計(jì)算過if(map.containsKey(n)){return map.get(n);}else{int m = solve(n-1) + solve(n-2);map.put(n, m);return m;}} }

這樣,可以大大縮短時(shí)間。也就是說,當(dāng)一道題你做了之后,發(fā)現(xiàn)時(shí)間復(fù)雜度很高,那么可以考慮下,是否有更好的方法,是否可以用空間換時(shí)間。

方法三:斐波那契數(shù)列

實(shí)際上,我們可以把空間復(fù)雜度弄的更小,不需要HashMap來保存狀態(tài):

public static int solve(int n){if(n <= 0)return 0;if(n <= 2){return n;}int f1 = 0;int f2 = 1;int sum = 0;for(int i = 1; i<= n; i++){sum = f1 + f2;f1 = f2;f2 = sum;}return sum; }

我弄這道題給你們看,并不是在教你們這道題怎么做,而是有以下目的:

1、在刷題的時(shí)候,我們要力求完美。

2、我想不到這些方法啊,怎么辦?那么你就可以去看別人的做法,之后,遇到類似的題,你就會(huì)更有思路,更知道往哪個(gè)方向想。

3、可以從簡(jiǎn)單暴力入手做一道題,在考慮空間與時(shí)間之間的衡量,一點(diǎn)點(diǎn)去優(yōu)化。

挑戰(zhàn)自己,跳出舒適區(qū)

什么叫舒適區(qū)?在刷題的時(shí)候,可能有一類題是你比較懂的,你每次一看就有思路,然后半個(gè)小時(shí)就擼好代碼,提交代碼,然后通過了,然后,哇,又多刷了一道題,心里很舒服。

但是,記住,前期你可以多刷這種題練手,提升自己的樂趣,但,我還是建議你慢慢跳出舒適區(qū),去做一些自己不擅長(zhǎng)的題,并且找段時(shí)間一直刷這種題。例如,我覺得我在遞歸方面的題還是挺強(qiáng)的,
但是,我對(duì)動(dòng)態(tài)規(guī)劃的題,很菜,每次都要想好久,每次遇到這種題都有點(diǎn)害怕,沒什么信心。不過有段時(shí)間我覺得只刷動(dòng)態(tài)規(guī)劃的題,直接在 leetcode 選定專題,連續(xù)做了七八十道,剛開始很難受,
后來就慢慢知道了套路了,一道題從兩三個(gè)小時(shí)最后縮到半小時(shí),簡(jiǎn)單的十幾分鐘就搞定。感覺自己對(duì)這類型的題也不懼怕的。

所以,建議你,一定要學(xué)好跳出自己的舒適區(qū)。

推薦一些刷題網(wǎng)站

我一般是在leetcode和牛客網(wǎng)刷題,感覺挺不錯(cuò),題目難度不是很大。

在牛客網(wǎng)那里,我主要刷劍指Offer,不過那里也有個(gè)在線刷leetcode,不過里面的題量比較少。牛客網(wǎng)刷題有個(gè)非常方便的地方就是有個(gè)討論區(qū),那里會(huì)有很多大佬分享他們的解題方法,不用我們?nèi)グ俣日翌}解。所以你做完后,實(shí)在想不出,可以很方便著去看別人是怎么做的。

至于leetcode,也是大部分題目官方都有給出答案,也是個(gè)不錯(cuò)的刷題網(wǎng)站。你們可以兩個(gè)挑選一個(gè),或者兩個(gè)都刷。

當(dāng)然,還有其他刷題的網(wǎng)站,不過,其他網(wǎng)站沒刷過,不大清除如何。

至于leetcode,有中文版和英文版,個(gè)人建議英文版,英文版里面有各種大佬的解法分析。

leetcode有中文版

英文版

根據(jù)自己的興趣選。

學(xué)習(xí)一些解題技巧

說實(shí)話,有些題在你沒看別人的解法前,你好不知道有這么美妙優(yōu)雅的解法,看了之后,臥槽,居然還可以這樣。而我們?cè)谒㈩}的過程中,就要不斷累積這些技巧,當(dāng)你累計(jì)多了,你就會(huì)形成一種
神經(jīng)反應(yīng),一下子就想到了某種方法。解題技巧很多,例如數(shù)組下標(biāo)法、位圖法、雙指針等等,我自己也分享過一篇總結(jié)一些算法技巧的文章。給你舉個(gè)例子吧,有時(shí)候有些技巧真讓你大喊“臥槽”。

1、找出沒有重復(fù)的數(shù)

給你一組整型數(shù)據(jù),這些數(shù)據(jù)中,其中有一個(gè)數(shù)只出現(xiàn)了一次,其他的數(shù)都出現(xiàn)了兩次,讓你來找出一個(gè)數(shù) 。

這道題可能很多人會(huì)用一個(gè)哈希表來存儲(chǔ),每次存儲(chǔ)的時(shí)候,記錄 某個(gè)數(shù)出現(xiàn)的次數(shù),最后再遍歷哈希表,看看哪個(gè)數(shù)只出現(xiàn)了一次。這種方法的時(shí)間復(fù)雜度為 O(n),空間復(fù)雜度也為 O(n)了。

然而我想告訴你的是,采用位運(yùn)算來做,絕對(duì)高逼格!

我們剛才說過,兩個(gè)相同的數(shù)異或的結(jié)果是 0,一個(gè)數(shù)和 0 異或的結(jié)果是它本身,所以我們把這一組整型全部異或一下,例如這組數(shù)據(jù)是:1, 2, 3, 4, 5, 1, 2, 3, 4。其中 5 只出現(xiàn)了一次,其他都出現(xiàn)了兩次,把他們?nèi)慨惢蛞幌?#xff0c;結(jié)果如下:

由于異或支持交換律和結(jié)合律,所以:

1^2^3^4^5^1^2^3^4 = (1^1)^(2^2)^(3^3)^(4^4)^5= 0^0^0^0^5 = 5。

也就是說,那些出現(xiàn)了兩次的數(shù)異或之后會(huì)變成0,那個(gè)出現(xiàn)一次的數(shù),和 0 異或之后就等于它本身。就問這個(gè)解法牛不牛逼?所以代碼如下

int find(int[] arr){int tmp = arr[0];for(int i = 1;i < arr.length; i++){tmp = tmp ^ arr[i];}return tmp; }

時(shí)間復(fù)雜度為 O(n),空間復(fù)雜度為 O(1),而且看起來很牛逼。

2、m的n次方

如果讓你求解 2 的 n 次方,并且不能使用系統(tǒng)自帶的 pow 函數(shù),你會(huì)怎么做呢?這還不簡(jiǎn)單,連續(xù)讓 n 個(gè) m 相乘就行了,代碼如下:

int pow(int n){int tmp = 1;for(int i = 1; i <= n; i++) {tmp = tmp * m;}return tmp; }

不過你要是這樣做的話,我只能呵呵,時(shí)間復(fù)雜度為 O(n) 了,怕是小學(xué)生都會(huì)!如果讓你用位運(yùn)算來做,你會(huì)怎么做呢?

我舉個(gè)例子吧,例如 n = 13,則 n 的二進(jìn)制表示為 1101, 那么 m 的 13 次方可以拆解為:

m^1101 = m^0001 * m^0100 * m^1000。

我們可以通過 & 1和 >>1 來逐位讀取 1101,為1時(shí)將該位代表的乘數(shù)累乘到最終結(jié)果。直接看代碼吧,反而容易理解:

int pow(int n){int sum = 1;int tmp = m;while(n != 0){if(n & 1 == 1){sum *= tmp;}tmp *= tmp;n = n >> 1;}return sum; }

時(shí)間復(fù)雜度近為 O(logn),而且看起來很牛逼。

給你算法技巧,當(dāng)然也可以關(guān)注我的公眾號(hào):苦逼的碼農(nóng),專注與分享算法、計(jì)算機(jī)基礎(chǔ)等相關(guān)文章,已有100多篇原創(chuàng),歡迎來撩。

推薦閱讀:一些常用的算法技巧總結(jié)

例如在刷題的時(shí)候,我們要學(xué)會(huì)巧用雙指針、數(shù)組下標(biāo)法、位運(yùn)算等等技巧來解決問題,可能會(huì)有意想不到的效果。我給你再找點(diǎn)我之前寫文章的一些例子吧:

分享一道解法巧妙的算法題

【算法技巧】位運(yùn)算裝逼指南

這是個(gè)長(zhǎng)期累積的過程,我自己也精彩在我的公眾號(hào)里分享一些解題的文章,感興趣的可以關(guān)注我的公眾號(hào):苦逼的碼農(nóng)

再說數(shù)據(jù)結(jié)構(gòu)發(fā)重要性

前面我主要是說了我平時(shí)都是怎么學(xué)習(xí)算法的。在數(shù)據(jù)結(jié)構(gòu)方法,我只是列舉了你們一定要學(xué)習(xí)鏈表樹(二叉堆),但這是最基本的,刷題之前要掌握的,對(duì)于數(shù)據(jù)結(jié)構(gòu),我列舉下一些比較重要的:

1、鏈表(如單向鏈表、雙向鏈表)。

2、樹(如二叉樹、平衡樹、紅黑樹)。

3、圖(如最短路徑的幾種算法)。

4、隊(duì)列、棧、矩陣。

對(duì)于這些,自己一定要?jiǎng)邮謱?shí)現(xiàn)一遍。你可以看書,也可以看視頻,新手可以先看視頻,不過前期可以看視頻,之后我建議是一定要看書。

例如對(duì)于平衡樹,可能你跟著書本的代碼實(shí)現(xiàn)之后,過陣子你就忘記,不過這不要緊,雖然你忘記了,但是如果你之前用代碼實(shí)現(xiàn)過,理解過,那么當(dāng)你再次看到的時(shí)候,會(huì)很快就記起來,很快就知道思路,而且你的抽象能力等等會(huì)在不知不覺中提升起來。之后再學(xué)習(xí)紅黑樹啊,什么數(shù)據(jù)結(jié)構(gòu)啊,都會(huì)學(xué)的很快。

最最重要

動(dòng)手去做,動(dòng)手去做,動(dòng)手去做。重要的話說三遍。

千萬不要找了一堆資源,訂好了學(xué)習(xí)計(jì)劃,我要留到某某天就來去做.....

千萬不要這樣,而是當(dāng)你激情來的時(shí)候,就馬上去干,千萬不要留到某個(gè)放假日啊什么鬼了,很多這種想法的人,最后會(huì)啥也沒做的。

也不要覺得要學(xué)習(xí)的有好多啊,不知道從哪學(xué)習(xí)起。我上面說了,可以先學(xué)習(xí)最基本的,然后刷題,刷題是一個(gè)需要長(zhǎng)期堅(jiān)持的事情,一年,兩年。在刷題的過程中,可以穿插和學(xué)習(xí)其他數(shù)據(jù)結(jié)構(gòu)。

大家也可以關(guān)注我的公眾號(hào):苦逼的碼農(nóng),在我的公眾號(hào)里,我也分享了很多與數(shù)據(jù)結(jié)構(gòu)算法相同的文章,而且也分享了很多解題技巧。目前已分析了 100 多篇原創(chuàng)文章,下面是一些我覺得
很不錯(cuò)的文章,強(qiáng)烈建議閱讀:

鏈表的重要性不言而喻,如果你把我分享的這10道題都搞懂了,那么你在鏈表方面算過關(guān)的了:

【鏈表問題】如何優(yōu)雅著反轉(zhuǎn)單鏈表

【鏈表問題】打卡6:三種方法帶你優(yōu)雅判斷回文鏈表

【鏈表問題】打卡9:將單鏈表的每K個(gè)節(jié)點(diǎn)之間逆序

【鏈表問題】刪除單鏈表中的第K個(gè)節(jié)點(diǎn)

鏈表問題】環(huán)形單鏈表約瑟夫問題

就不一道道列出來了,一共挑選了10還不錯(cuò)的文章

十道鏈表打卡匯總

我還講解了一些常用數(shù)據(jù)結(jié)構(gòu)與算法思想,每篇都通俗易懂著講解了,被各種號(hào)所轉(zhuǎn)發(fā)

1、為什么你學(xué)不會(huì)遞歸?告別遞歸,談?wù)勎业囊恍┙?jīng)驗(yàn)

2、十大排序重要性不言而喻,文章還附帶了動(dòng)畫、講解文章,代碼
必學(xué)十大經(jīng)典排序算法,看這篇就夠了(附完整代碼/動(dòng)圖/優(yōu)質(zhì)文章)(修訂版)

3、總結(jié)了刷題過程中常用的技巧,推薦閱讀:一些常用的算法技巧總結(jié)

4、用漫畫的形式講解了AVL樹:【漫畫】以后在有面試官問你AVL樹,你就把這篇文章扔給他。

5、大量圖講解了堆的各種操作:【算法與數(shù)據(jù)結(jié)構(gòu)】堆排序是什么鬼?

索性把寫的一些文章鏈接都分享一波,大家可以挑感興趣的看算法與數(shù)據(jù)結(jié)構(gòu)系列文章

也非常歡迎大家關(guān)注公眾號(hào)「苦逼的碼農(nóng)」里面已有100多篇原創(chuàng)文章,我也分享了很多視頻、書籍的資源,以及開發(fā)工具,歡迎各位的關(guān)注,第一時(shí)間閱讀我的文章。
如果你覺得這篇內(nèi)容對(duì)你挺有啟發(fā),我想邀請(qǐng)你幫我三個(gè)忙,讓更多的人看到這篇文章:

1、點(diǎn)贊,讓更多的人也能看到這篇內(nèi)容(收藏不點(diǎn)贊,都是耍流氓 -_-)

2、關(guān)注我和專欄,讓我們成為長(zhǎng)期關(guān)系

3、關(guān)注公眾號(hào)「苦逼的碼農(nóng)」,主要寫算法、計(jì)算機(jī)基礎(chǔ)之類的文章,里面已有100多篇原創(chuàng)文章


大部分的數(shù)據(jù)結(jié)構(gòu)與算法文章被各種公眾號(hào)轉(zhuǎn)載相信一定能讓你有所收獲

我也分享了很多視頻、書籍的資源,以及開發(fā)工具,歡迎各位的關(guān)注我的公眾號(hào):苦逼的碼農(nóng),每周推送幾篇原創(chuàng)文章,相信 會(huì)讓你有所收獲。

轉(zhuǎn)載于:https://www.cnblogs.com/kubidemanong/p/10996134.html

總結(jié)

以上是生活随笔為你收集整理的小白一路走来,连续刷题三年,谈谈我的算法学习经验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。