刷了80道演算法題以後,我最大的感受是,自信心倍增。既克服了對演算法的恐懼,也加強了Java程式碼能力,還收集了2068行答案程式碼。
我刷演算法題的理由很平常,就是想提高自己的競爭力,在面試的時候能過最後那一關。前後離職的兩名同事都告訴我,在牛客網上面刷題就可以了。於是這次我就在牛客網上面按照題庫→線上程式設計→全部題目→測試
的路徑,篩選了一下演算法題,搜出來一共80道題:
我之前面試碰到過的字串相加和判斷字串是否為IP地址的兩道題,都出現在了這80道題之中。並且前同事面試做過的演算法題都是在這上面做過的原題,我對比了一下也在這80道題裡面。可以毫不誇張的說,掌握這80道題,基本上90%的面試演算法題,你都能通過。
正是來著這樣的決心,我就開始做題了,使用的程式語言是Java,藉著這個機會也多拿Java練練手。有好幾個階段:
- 直接做。做不來。
- 先背答案,再敲程式碼,堅持到了第15題。背得費勁。
- 對著程式碼,一個一個字母敲一遍,堅持到了第35題。敲的手疼。
- 直接在題解中找答案程式碼,複製貼上後提交。順利“刷”完了80道題。
所有80道題的答案程式碼都上傳到了我的GitHub上面:
https://github.com/dongfanger/java-util/blob/main/AQ80.java
接下來把這80道題的答案理解了或者背下來,面試考演算法就基本上沒多大問題了。
這80道題包含了簡單、中等、困難所有3種難度,困難題可以選擇性放棄,簡單題必須掌握,中等題根據程式碼量平衡選擇,一般測試考演算法,不會讓你寫程式碼量特別多那種的。
演算法題也是有套路可尋,重點會考察這些知識點:雜湊表、連結串列、棧、排序、二分法、雙指標、遞迴、動態規劃、樹的遍歷等。對演算法感興趣也可以閱讀這個大佬寫的攻略:
https://github.com/labuladong/fucking-algorithm
希望這篇文章對正在求職的小夥伴能有所幫助!