算法的重要性:
首先關于算法部分的提高,要怎么訓練是沒有什么捷徑的,這一關其實相對來說是在求職以及考試過程中難度比較大但是別人幫不了你的一關,各類教程最多是以動畫演示等相對更通俗易懂的形式,輔助你去理解算法的原理,但是leetcode這一關只能靠自己過,因為這個算是比較偏硬功夫的內(nèi)容,但是它占的比重又很大,像大廠秋招的筆試,還有面試過程都有手撕代碼環(huán)節(jié),并且占的分值很大,所以說這一關是一定要過的。
針對性刷題:
至于你說到目前大二,我覺得你不用太緊張,隨著你后期編程邏輯思維與理解力的上升,算法能力肯定是會逐步提高的,你所提到樹和圖這兩種數(shù)據(jù)結(jié)構(gòu)中,還是挺蠻重要的,類似常用的二叉樹是面試中經(jīng)常考察的重點內(nèi)容。關于有向圖與無向圖的內(nèi)容,涉及的稍微少一點,數(shù)據(jù)結(jié)構(gòu)與算法還是要有針對性的刷。
刷題內(nèi)容:
先做一些比較簡單的題,我認為刷leetcode就夠了,如果基礎相對較差,可以先刷刷牛客網(wǎng)上的華為機試,對面向求職是完全沒問題的,然后刷題內(nèi)容的學習規(guī)劃,我覺得你可以看一下數(shù)據(jù)結(jié)構(gòu)的基礎概念,常用的數(shù)據(jù)結(jié)構(gòu),例如數(shù)組,鏈表,哈希表,棧,大根堆,小根堆,隊列等。以上是數(shù)據(jù)結(jié)構(gòu)部分的內(nèi)容,與算法相比,一些稍微正常的算法,類似dp動態(tài)規(guī)劃,以及常用的八種排序算法。這類算法是針對數(shù)組數(shù)據(jù)結(jié)構(gòu)的算法。
建議的刷題路線:
算法是基于數(shù)據(jù)結(jié)構(gòu)的基礎之上實現(xiàn)的優(yōu)化解題方法,比如針對二叉樹數(shù)據(jù)結(jié)構(gòu)的算法有,前序遍歷,中序遍歷,后序遍歷,都是比較簡單的算法,關于圖的算法,比較稍微復雜一些的算法,就像我們拓撲排序判斷有向無環(huán)圖,如果學有余力還可以看并查集(不過并查集不在求職面試的考察范圍),然后我覺得你要想?yún)⒓铀{橋杯的話,可以把藍橋杯的往屆真題,刷2-3遍左右吧,你可以先試一試。
以下是我給你的繪制的一些簡單的算法刷題路線:
