寫在前面的話
無論你是爲了面試還是爲了提升自己的編程水平,你都應該好好學習Leetcode 算法。
爲什麼呢?
不知你們有沒有發現,其實不止BAT 等知名大廠,其他各大中小企業也已慢慢地已不再滿足僅僅功能的實現,而是如何更高效,更高可用。
- 就好比同樣計算1+1+1+1+1 等於多少,在以前我們用加法算對就行。現在可不行,你得會用乘法。
- 你說同樣一部分業務數據,爲什麼數組比鏈表查詢速度更快?不知道答案的看我的另外一篇博文。
再扯遠點,我們知道,以前服務器資源都很貴,算是稀缺資源,企業買服務器都儘可能節省成本,因此單體架構盛行,只要產品能用,好看就行,服務器資源都是能省則省。
如今則不一樣,如今的服務器資源幾乎可以說是過剩的,企業不再怕花錢,不怕多搞服務器,只要能提高性能和高可用,能提供更好的服務,就有錢掙,那就沒問題,所以你們應該也能感受到,今年應該是微服務架構開發最火的一年,各大中小企業需求量也很大。
PS: 隨着Serverless的慢慢普及,程序員面向雲服務開發日子應該也不遠了。
另一方面,如今互聯網行業發展了這麼多年,各種產品需求幾近飽和,企業的紅利已經不多了,這才需要發展5G ,用更快的速度帶動更多的創業機會。
另外, Leetcode 對於升級高級程序員段位來說變得也愈加重要。
算法,我認爲它之所以如此重要在於兩點:
- 第一:可以提升我們解決問題的思路
- 第二:可以更加高效靈活使用Java數據結構
好了扯完了,下面推薦下我的開源項目,教你如何更好地學習和練習Leetcode算法。
開始之前分享下我的學習心法:
- 算法入門心法第一層:不會寫,就先多看。
- 算法入門心法第二層:看完了就背誦默寫答案。
- 算法入門心法第三層:然後開始嘗試理解和感悟題解的思想和解法規律
- 算法入門心法第四層:把自己的大腦當成電腦, 按照大腦的思考方式分步驟轉換成代碼即可。
- 算法入門心法第五層:開始模仿算法解題思路去解決一些新題目或題目變種
- 算法入門心法第六層:靈活掌握各種算法的優缺點,解決實際問題。
- 算法入門心法第七層:自創算法,去改造優化算法。
1. 入門指南
你想知道怎麼使用它麼?
好,現在讓我們開始。
1.1 如何下載該項目
- 首先我們需要把它fork或者clone 下載到你的電腦裏。
git clone https://github.com/geekxingyun/leetcode-java-algorithm-solution.git
- 然後你將會發現項目分成了兩個模塊
- complete: 這個一個已經完成的項目模塊包含了Leetcode 算法問題的參考答案。
- initial: 你只需要在這個項目裏練習寫算法就好了。
如果你不知道哪道題如何寫,就打開complete 模塊找答案就是了。
1.2 如何使用這個項目
項目代碼持續更新中, 當前效果圖如下:
1.2.1 使用Maven
如果你使用的是Maven 就用Intellij idea 或Eclise 打開項目根目錄的pom.xml
然後在initial 模塊寫代碼就行了
1.2.2 使用Gradle
如果你使用的是Maven 就用Intellij idea 或Eclise 打開項目根目錄的build.gradle
然後在initial 模塊寫代碼就行了
1.3 貢獻
我是技術宅星雲,英文名 fairy, 是一名Java 軟件工程師。
如果你認爲這個項目對你有用,請標記個star以便於更多的人能知道這個項目。
如果有任何問題請發送郵件給我,[email protected]
說完了,謝謝~
1.4 項目開源地址
https://github.com/geekxingyun/leetcode-java-algorithm-solution.git