leetcode題庫(kù)python 用Python刷面試算法題(如leetcode)是怎樣的體驗(yàn)?
用Python刷面試算法題(如leetcode)是怎樣的體驗(yàn)?當(dāng)然,Python是我推薦的解決算法問題的最佳語(yǔ)言,而不是其中之一。首先,Python的語(yǔ)法非常簡(jiǎn)單,您不必妨礙語(yǔ)言細(xì)節(jié)。假設(shè)您使用C語(yǔ)言
用Python刷面試算法題(如leetcode)是怎樣的體驗(yàn)?
當(dāng)然,Python是我推薦的解決算法問題的最佳語(yǔ)言,而不是其中之一。
首先,Python的語(yǔ)法非常簡(jiǎn)單,您不必妨礙語(yǔ)言細(xì)節(jié)。假設(shè)您使用C語(yǔ)言,那么內(nèi)存和指針又會(huì)濫用您的權(quán)限。你能拿出多少精力來研究這個(gè)算法?刷算法時(shí),語(yǔ)言只是一個(gè)載體,一個(gè)工具,永遠(yuǎn)不能被語(yǔ)言束縛。Python在這一點(diǎn)上具有絕對(duì)優(yōu)勢(shì)。
第二,雖然Python很簡(jiǎn)單,但是它有各種各樣的語(yǔ)言特性。雖然Python很簡(jiǎn)單,但是它有豐富的特性,比如面向?qū)ο蠛秃瘮?shù)式編程。它簡(jiǎn)單易用,代碼看起來非常簡(jiǎn)潔。其他語(yǔ)言要么太基礎(chǔ)(C/C等),缺乏高級(jí)特性,要么非?;ㄉ冢ɡ鏙avaScript、面向?qū)ο?、prototype-chain等對(duì)象),需要異步來實(shí)現(xiàn)并行化。與python不同,它有足夠的特性,而且非常簡(jiǎn)潔。
第三,Python是一種動(dòng)態(tài)語(yǔ)言。它不需要編譯。它直接在寫入之后運(yùn)行,這增加了方便性。對(duì)于C/C/Java這樣的語(yǔ)言,在編寫之后,我們需要編譯或者依賴虛擬機(jī)來執(zhí)行。事實(shí)上,如果我們邁出這一步,會(huì)有更多的障礙。當(dāng)我們刷算法問題時(shí),我們想要的是身臨其境的體驗(yàn)。不要被這些阻礙。
Python具有上述三種功能,絕對(duì)是首選。此外,還有另一個(gè)好處。Python是人工智能領(lǐng)域的官方語(yǔ)言。在學(xué)習(xí)了Python和刷算法之后,您將進(jìn)入另一個(gè)熱門領(lǐng)域。
有編程基礎(chǔ),辭職每天自學(xué)四小時(shí)編程,做git項(xiàng)目,刷leetcode。會(huì)比大廠在職的程序員成長(zhǎng)慢嗎?
會(huì)很慢的。你在紙上會(huì)覺得膚淺。更不用說大工廠了,它們可能比不上許多學(xué)習(xí)氛圍較好的中小企業(yè)。只有做商業(yè)項(xiàng)目才能了解用戶的需求,只有把技術(shù)應(yīng)用到實(shí)踐中才能知道突破點(diǎn)在哪里。
閉門造車只是原地踏步。如果它是一個(gè)主編碼器,它可能仍然工作。但說到中高級(jí),不僅僅是寫代碼。之后,您需要了解設(shè)計(jì)模式、跨部門溝通,甚至在甲方提出需求時(shí)挖掘潛在需求。這樣,你就不需要整天改變需求。
那么,如果我們想深入技術(shù)領(lǐng)域,除了建筑師,還有流行的人工智能行業(yè)。這是一條新的先進(jìn)路線。許多人說學(xué)習(xí)人工智能意味著改變職業(yè)。事實(shí)上,不是。我以前的目標(biāo)是成為一名建筑師。后來,我從坑里出來了。
人工智能的核心是算法。算法是一個(gè)智能程序。我們從事項(xiàng)目開發(fā)。我覺得這是我們技術(shù)的另一個(gè)方向。
你知道我為什么有時(shí)間在頭條和問答上和你聊天嗎?因?yàn)楫?dāng)我訓(xùn)練模型時(shí),我可以自由移動(dòng)。建立一個(gè)模型需要幾百行代碼,然后我只看一下計(jì)算機(jī)訓(xùn)練模型。
如果你有一個(gè)小弟弟想向這個(gè)方向發(fā)展,你可以私下和我談?wù)?。我?huì)告訴你我的登陸經(jīng)驗(yàn)
是的,但是用leetcode做數(shù)據(jù)結(jié)構(gòu)練習(xí)不是特別好。Leetcode實(shí)際上強(qiáng)調(diào)了算法的改變。畢竟,這是面試題目。很多話題故意讓你難堪,讓你感到意外。事實(shí)上,有些問題并不強(qiáng)調(diào)數(shù)據(jù)結(jié)構(gòu)。只要幾個(gè)變量和數(shù)組就可以解決這個(gè)問題。所以我覺得用leetcode的效果比較好,初學(xué)者看完書后再練習(xí)。當(dāng)我們可以解決基本問題時(shí),讓我們看看leetcode。
至于是使用C還是python,我認(rèn)為這取決于您學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的目的。如果是為了近期出去面試,我覺得Python比較好,現(xiàn)場(chǎng)的成績(jī)也比較快。如果你只是想自學(xué),我不打算在不久的將來面試。我認(rèn)為使用C是更好的,是許多計(jì)算機(jī)科學(xué)的基礎(chǔ)。如果你熟悉它,你將來可以從其他課程中受益,比如操作系統(tǒng)、計(jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)、圖形學(xué)等等,