最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

算法該不該刷?如何高效刷算法?

2023-02-13 11:49 作者:危墻下的偽君子  | 我要投稿

一、算法該不該刷?

最近看到一個(gè)問(wèn)題,就是算法該不該刷,該如何刷算法呢?這個(gè)問(wèn)題可謂太大眾化了,只要你去某乎、某度搜索一下相關(guān)的解答,會(huì)有無(wú)數(shù)種回答,可見(jiàn)這個(gè)問(wèn)題困擾了多少學(xué)習(xí)計(jì)算機(jī)的同學(xué)們,但不管回答有多少種,總結(jié)一句話就是“算法必須刷!”。

當(dāng)然,這個(gè)回答其實(shí)也并不絕對(duì),算法也可以不刷,在我看來(lái)取決于兩個(gè)原因:

其一,計(jì)算機(jī)出來(lái)工作也分很多種,有前端、后端、算法、測(cè)試、運(yùn)維、大數(shù)據(jù)、人工智能、嵌入式等很多方向,不同方向的學(xué)習(xí)內(nèi)容也不一樣,因此算法也并不是所有類型的工作都得學(xué)習(xí)的。

其二,如果你的志向沒(méi)有那么遠(yuǎn)大,只是想能夠找份工作上班,而不追求公司的規(guī)模的話,那你也可以不刷算法,因?yàn)檎5男」緦?duì)算法的要求并不注重,他們想要的是能夠入職很快就可以干活的人,只要你能夠敲代碼,那他們就會(huì)錄取你;而一些規(guī)模比較大的公司,他們對(duì)算法的要求還是比較強(qiáng)的,因?yàn)榇蠊咀⒅厍舐氄叩幕竟?,在他們看?lái)算法是可以綜合考察求職者的基本功是否扎實(shí),至于技術(shù)棧是否扎實(shí)他們其實(shí)并不是重點(diǎn)(當(dāng)然技術(shù)棧功底也是比較看重的),因?yàn)樗麄冇胸?cái)力和能力來(lái)培養(yǎng)員工的技術(shù)能力。上述表述是針對(duì)于應(yīng)屆生和初級(jí)程序員對(duì)于求職找工作而言的,中高級(jí)程序員另說(shuō)。

綜上所述,我認(rèn)為什么樣的人應(yīng)該刷算法呢,未來(lái)從事的工作譬如算法、后端、大數(shù)據(jù)這類的工作,需要算法的工作門(mén)類,并且你所追求的公司是屬于中大廠的,那么算法這一關(guān)是一定要過(guò)的,這些公司一般在面試前會(huì)有一次筆試,筆試就會(huì)考察算法,一般考察2道,筆試過(guò)不了的話正常連面試機(jī)會(huì)也沒(méi)有的。當(dāng)然考察的算法也不會(huì)很難,一般都是簡(jiǎn)單到中等的難度,很少會(huì)有困難的難度,正常面試比較難的題目也就在LeetCode中等難度題目中的中等難度那樣。當(dāng)然越大的公司,對(duì)于算法的考察會(huì)越注重,比如騰訊、阿里、字節(jié)等這些一線大廠,通常會(huì)有三次以上的面試,而每次面試都可能考察一道算法題,可想而知算法的重要性。

在我看來(lái),會(huì)問(wèn)“算法該不該刷”這個(gè)問(wèn)題的人一共有兩種,一種是剛?cè)腴T(mén)計(jì)算機(jī)沒(méi)多久的人,還有一種是刷了幾道算法覺(jué)得有難度想放棄的人。因?yàn)槲冶救司褪墙?jīng)歷過(guò)這兩個(gè)階段。一開(kāi)始的時(shí)候,我剛?cè)腴T(mén)計(jì)算機(jī),在了解到面試需要考察算法這里的時(shí)候,我就開(kāi)始懷疑,我學(xué)的是Java后端開(kāi)發(fā),明明是敲代碼做開(kāi)發(fā)的,又不是算法工程師,為什么要刷算法呢?所以我有了“算法該不該刷”的問(wèn)題。再后來(lái),我刷了幾道算法,一開(kāi)始刷算法特別難受,因?yàn)闆](méi)怎么接觸過(guò),刷起來(lái)完全沒(méi)有思路,而且在刷算法的時(shí)候,敲代碼其實(shí)也會(huì)有點(diǎn)卡殼,這才了解到自己的基本功也不是很扎實(shí)。碰了壁,遇到了麻煩,想放棄,自然就會(huì)想“算法那該不該刷”這個(gè)問(wèn)題,總想著避開(kāi)算法。但之后通過(guò)不斷的面試發(fā)現(xiàn),算法不刷還真不行。因?yàn)槊嬖囈恍┲行凸镜臅r(shí)候,連面試前的筆試都過(guò)不了,更別談拿到面試機(jī)會(huì)了。所以后面就把算法刷了起來(lái),雖然有些難度,但刷了一些題之后,適應(yīng)了其實(shí)覺(jué)得,也沒(méi)有那么難了。

總結(jié):算法該不該刷?算法必須刷起來(lái)好吧!

二、如何高效刷算法?

相信很多小伙伴都會(huì)有這么個(gè)疑問(wèn),我知道算法的重要性了,但我卻不知道算法該如何刷,這么多算法該從何下手,哪些算法必須刷,哪些算法又是可以不刷的?

那么,接下來(lái)的內(nèi)容我將把我從0到1刷算法的一些經(jīng)驗(yàn)和途徑分享給大家,希望看到這篇文章的小伙伴可以少走些彎路,那么我們直奔主題:

1.刷算法最重要的不是敲代碼,而是思路。很多小伙伴在拿到題目的時(shí)候第一反應(yīng)就是敲代碼,邊敲邊想。其實(shí)這是錯(cuò)誤的,我們拿到題目第一時(shí)間應(yīng)該是想思路,而不是著急做題。我們可以花一些時(shí)間把思路想一想,在確保思路想通的情況下再去敲代碼,這樣做題就會(huì)比較順暢。就像寫(xiě)作文一樣,拿到作文題目不是直接下筆,而是構(gòu)思。

2.刷算法一定要分類刷。什么意思呢,就是你可以按照算法的分類進(jìn)行刷題,算法分字符串、鏈表、棧、二叉樹(shù)等類型的題目,這段時(shí)間只刷字符串,待字符串刷的差不多的時(shí)候再開(kāi)始刷鏈表類題目,這樣子刷題的效率會(huì)事半功倍。反之刷題不按分類刷,隨意刷題的話,可能會(huì)事倍功半。因?yàn)槊恳环N類型的題目都有對(duì)應(yīng)的一些套路和方法,刷多了就能舉一反三了,一拿到此類題目就知道該如何下手。

3.刷算法一定要刷多遍,不要只刷一遍。當(dāng)我們刷算法的時(shí)候,既要學(xué)會(huì)這道題的思路,又要會(huì)敲代碼。而我們的大腦對(duì)某一件事的記憶力會(huì)隨著時(shí)間的增加而下降,所以刷算法一定要多刷幾遍,這樣才能保證我們刷過(guò)的題可以成為自己大腦題庫(kù)中的題,而不是題庫(kù)中的過(guò)客。

至于多刷幾遍也是有方法的。拿我的方法來(lái)舉例,一般我會(huì)刷3遍,第一遍是只刷思路,不敲代碼,拿到一道題目的時(shí)候,我會(huì)直接看思路,思路可以明白的情況下再去看代碼,代碼可以看懂的情況下,我會(huì)將這道題整理到我的博客上,用自己的話把這道題的思路記下來(lái),然后把代碼也copy到文章中,這道題就算刷了第一遍。

等這類題目刷完的時(shí)候,我會(huì)把所有的題目再刷第二遍,注意是刷完此類題目的時(shí)候。第二遍我就不會(huì)看思路,只看題目,然后自己想思路,想好之后去把代碼也實(shí)現(xiàn)了。第二遍我會(huì)專門(mén)記錄成一篇文章,文章中記錄著我刷每一道題目的感受,比如說(shuō)“此題刷題順利”、“此題思路不順”、“此題代碼不順”等。這樣就會(huì)方便我第三次刷題。接著過(guò)段時(shí)間后,我會(huì)開(kāi)始第三遍刷題,把第二遍刷題時(shí)不順的題目再刷一遍,這樣就將此類算法題刷的差不多了。

注意:一定要分類刷題,包括第二遍第三遍也是分類刷題,一定要總結(jié)刷題方法和套路。

刷算法一定要總結(jié),不能只有輸入而沒(méi)有輸出。就像第3點(diǎn)中我說(shuō)我的刷題方法一樣,刷過(guò)的題目輸出出來(lái),方便以后的復(fù)盤(pán)和總結(jié)。如果只靠輸入,而不輸出的話,大腦再遇到刷過(guò)的題目的時(shí)候,可能也都沒(méi)什么印象了。

刷題一定要循環(huán)漸進(jìn),剛開(kāi)始的時(shí)候先刷簡(jiǎn)單的,然后再刷中等,再到困難。大家在刷題的時(shí)候可能會(huì)存在一個(gè)誤區(qū),就是一上來(lái)就刷難題,以為如果我把難題都刷會(huì)了,那簡(jiǎn)單的題目也就不在話下。其實(shí)不然,每道題都有各自的方法,他們相互關(guān)聯(lián)但又各自獨(dú)立,每道題目的思路都不相同,所以難得題目會(huì)解并不代表簡(jiǎn)單的題目也可以解決,反而在刷困難的題目的時(shí)候,會(huì)因?yàn)楹翢o(wú)思路而懷疑人生,最后刷題刷的痛苦不已。不要問(wèn)我怎么知道的,問(wèn)就是經(jīng)歷過(guò)。刷算法題不建議拿大量的時(shí)間進(jìn)行刷題。刷算法題可以每天刷一兩道,后面適應(yīng)了可以一天幾道的刷,但前提是不要拿大量的時(shí)間花在刷題上,畢竟從事的工作不是算法工程師,還是要以主線學(xué)習(xí)內(nèi)容為主。每天花一兩個(gè)小時(shí)來(lái)刷算法就完全可以了,把算法和其他學(xué)習(xí)內(nèi)容穿插著來(lái)進(jìn)行。掌握數(shù)據(jù)結(jié)構(gòu)這門(mén)課。數(shù)據(jù)結(jié)構(gòu)這門(mén)課還是很重要滴,如果沒(méi)學(xué)過(guò)的同學(xué)或者學(xué)過(guò)但學(xué)的不是很好的同學(xué),建議重新學(xué)一遍,但我建議不要一次性把整門(mén)課都學(xué)完,而是邊學(xué)邊刷題。比如刷到鏈表類題目的時(shí)候,可以把鏈表那一章的數(shù)據(jù)結(jié)構(gòu)看了,然后再去刷題。刷題刷到哪,數(shù)據(jù)結(jié)構(gòu)學(xué)到哪。這樣會(huì)事半功倍。



算法該不該刷?如何高效刷算法?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
丹东市| 永寿县| 威远县| 泌阳县| 平阴县| 如东县| 体育| 弥勒县| 泸水县| 栾城县| 波密县| 佛山市| 玉环县| 玉树县| 筠连县| 无棣县| 扎兰屯市| 武山县| 祁阳县| 桐城市| 两当县| 滕州市| 和田县| 利津县| 驻马店市| 台北县| 武夷山市| 杂多县| 库车县| 蓬溪县| 内丘县| 泰和县| 陆良县| 赞皇县| 泗阳县| 肇庆市| 祁连县| 扎鲁特旗| 襄樊市| 札达县| 竹北市|