對于刷LeetCode一些想法

大三準(zhǔn)備校招階段,零零散散,前前后后的刷了夠3,4百道題,題目來源LintCode,劍指Offer,Leetcode。當(dāng)然題目之間會有些相似度比較高的,對于常見的算法題目類型,也都有進行專題的相關(guān)學(xué)習(xí)。
“校招面試,全程hard模式,進來讓寫重復(fù)業(yè)務(wù)邏輯?!边@種經(jīng)歷,我想對于每一個進程序員來說都不陌生。確實,一般的業(yè)務(wù)邏輯也不會需要什么旋轉(zhuǎn)樹等復(fù)雜的操作,特別是對于一個前端程序員來說。可是,現(xiàn)在北美,國外互聯(lián)網(wǎng)公司,還是會把手寫算法題當(dāng)做一個考核指標(biāo)。其價值在哪里呢?以下是幾點自己的想法。也正是這些想法,讓我決定重頭再來刷一遍。

  • 應(yīng)屆生想進大廠,出國工作
    校招面試
    針對校招這點,自己結(jié)合自己找工作經(jīng)歷談一些,面試阿里被問到的比較多,難度看面試官,比較隨機,筆試一般會有一道,網(wǎng)易的筆試,每年都會有三道算法題在,前兩道,如果刷題量在200+,且有自己的思考總結(jié)的,基本可以ac掉,第三道一般是接近hard了。騰訊面的時候,問的則相對少一些,面創(chuàng)業(yè)公司的時候也被問到一些,相比阿里來說要簡單很多,基本的排序,查找。華為有個機試,沒有什么難度的算法題,但是會很麻煩,基本考察代碼表述邏輯。

    出國工作
    也是目前支撐自己重拾的一個關(guān)鍵原因。

  • 提高代碼實現(xiàn)思維邏輯能力
    很多時候,我們在寫代碼的時候,自己能夠想到如何去實現(xiàn),但是真正去手寫的代碼出來的時候,就會發(fā)現(xiàn)很多問題,用代碼表述不出來,不知道該套一個循環(huán),里面再做何種判斷,邊界值卡在哪里,通過刷題,可以很好地鍛煉這一點。對一個題目有了想法,很快就可以用代碼實現(xiàn)出來。

  • 提高思考問題的能力
    這點尤為關(guān)鍵,遇到問題,上來就寫,然后寫的很爛,再去修,通過刷題,大多數(shù)的題目,在動手前如果沒有深入的思考,很容易按照自己理解錯誤的方向走了,數(shù)據(jù)的各種情形考慮不到,導(dǎo)致始終無法accept。通過不停地刷題,漸漸的就會養(yǎng)成一種習(xí)慣,遇到問題先思考,考慮清楚了,再去下手,而不是上來就動手,很容易從一個小的切入了,而達不到高屋建瓴的高度去看問題。

  • 增強代碼魯棒性
    由于題目給予的測試數(shù)據(jù)中,各種類型的數(shù)據(jù)都會存在,所以就強迫我們?nèi)プ屑?xì)的審查代碼,來確定問題中所有可能會出現(xiàn)的特殊值,然后根據(jù)這些特殊值分別做好處理。

  • 寫出更簡潔的代碼
    通過刷題,我們代碼實現(xiàn)邏輯的能力會越來越強,之前可能很多的循環(huán),if,else嵌套,現(xiàn)在就會變得清晰很多。

綜上,算是重刷Leetcode的原因。

自己所計劃的是每日一道,Java,C++,Python三種語言實現(xiàn),同時提供盡可能簡潔,巧妙的方法,同時給出自己的思考過程,當(dāng)然時間有限,題目難度有限,按照自己的計劃走也是很有難度,盡可能的去超目標(biāo)上靠,做更多。

Github上最近也開了個機器學(xué)習(xí)的Project ML1024,每日文章閱讀,或者一個機器學(xué)習(xí)方法,或者一個數(shù)學(xué)公式,總之,每日會有一點contribution。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容