LeetCode按照怎樣的順序來刷題比較好?

2020-09-05 程式設計師客棧

分享一下身邊大神的刷題順序:

如果你時間比較緊迫,為了找工作而刷題,我建議你先刷熱門推薦,一共兩百多道題。

在 https://leetcode-cn.com/problemset/all/ 頁面的右側。先刷熱題 HOT 100,再刷精選 TOP 面試題,之後刷其他的題。

如果你時間比較充裕,那我建議你:

  • 按從低到高的難度分組刷
  • 按 tag 分類刷
  • 定期複習,重做之前刷過的題

掌握 LeetCode 刷題方法再開始刷題,屬於磨刀不誤砍柴工。掌握正確方法是非常重要的。

如果你在刷題的時候發現怎麼也寫不出來,別擔心,這是正常的。

如果你還發現,之前明明刷過的題,過段時間再做的時候,自己還是不會。別擔心,這也是正常的。

刷題方法:

  • 第一遍:可以先思考,之後看參考答案刷,結合其他人的題解刷。思考、總結並掌握本題的類型,思考方式,最優題解。
  • 第二遍:先思考,回憶最優解法,並與之前自己寫過的解答作比對,總結問題和方法。
  • 第三遍:提升刷題速度,拿出一個題,就能夠知道其考察重點,解題方法,在短時間內寫出解答。

定期總結:

  • 按照題目類型進行總結:針對一類問題,總結有哪些解題方法,哪種方法是最優的,為什麼。
  • 總結重點:有些題你刷了好多遍都還是不會,那就要重點關注,多思考解決方法,不斷練習強

結合圖解刷題:

有些人認為刷題比較枯燥,比較抽象。那你可以結合動畫圖解刷題。

在此以簡單的排序算法為例:

單單排序算法就可以分為以下十種:

推薦一個用動畫的形式演示 LeetCode 上的題目的項目:

https://github.com/MisterBooo/LeetCodeAnimationgithub.com

例如基礎的冒泡排序法演示如下:

選擇排序法:

插入排序法:

希爾排序法:

歸併排序法:

快速排序法:

堆排序:

計數排序:

桶排序:

基數排序:

該項目正在完善中,已經用動畫的形式演示出了一下題目:

因為知乎排版沒有表格,所以我就截圖了,以上內容詳見:

MisterBooo/LeetCodeAnimationgithub.com

此外,再推薦一些免費的學習資源:

在學習的時候,要想為什麼要這樣設計,優點在哪裡,有什麼改進方法,逐步通過這樣的方式提升邏輯思維能力。不懂就查,找學習資料和相關解答,堅持學習。

1. 算法學習 LintCode:https://www.lintcode.com/

算法學習網站,上去每天刷兩道算法題,走遍天下都不怕。

2. 算法學習 LeetCode:https://leetcode.com/

也是算法題網站,同上。

3. 算法學習 LeetCode 中文站:https://leetcode-cn.com/

這個是上面算法題網站的中文站點,英文不好的可以刷這個,英文好的推薦去刷英文網站的題目,還能提升英語能力。

4. 中國大學MOOC網:https://www.icourse163.org/

中國大學MOOC是由網易與高教社攜手推出的在線教育平臺,承接教育部國家精品開放課程任務,向大眾提供中國知名高校的MOOC課程。在這裡,每一個有意願提升自己的人都可以免費獲得更優質的高等教育。

相關焦點

  • leetcode刷題最強指南(版本1.0)
    其實我之前在知乎上回答過這個問題,回答內容大概是按照如下類型來刷數組-> 鍊表-> 哈希表->字符串->棧與隊列->樹->回溯->貪心->動態規劃->圖論->高級數據結構,再從簡單刷起,做了幾個類型題目之後,再慢慢做中等題目、困難題目。
  • 在IDE中刷LeetCode,刷題效率直線up!
    第一份乾貨來自網友在GitHub上分享的一份教程:在IDE中刷題,讓編碼調試一體化。插件及使用的程式語言,然後點擊力扣圖標,就能在菜單中選擇題目開始刷題了。並且可以將寫好的代碼在本地調試,方便快捷了許多。你可能還想要一個刷題攻略除了強大的工具外,一份好用的刷題攻略也必不可少。GitHub上有網友分享出了自己總結的一套算法模板,並且他靠著這份模板刷題,成功拿到了字節跳動的offer!
  • 【SQL刷題系列】:leetcode180 Consecutive Numbers
    點擊上方 ↑ 藍色關注「Python數據科學」SQL刷題系列:SQL作為一種資料庫查詢和程序設計語言,是從事數據技術人員必備的技能,也是各大公司的數據分析、數據挖掘、資料庫等筆試題必考的一種題。為此,Python數據科學開啟了SQL刷題的系列,希望可以幫助有需要的朋友們。
  • leetcode刷對了麼
    這些題需要你想清楚了再做,只要你稍有疏忽,就會有幾個case讓你痛不欲生,而且一不小心就會讓你的代碼會寫得又臭又長,無法閱讀。通過做這些題,可以非常好的訓練你對各種情況的考慮,以及你對程序代碼組織的掌控(其實就是其中的狀態變量)。
  • C#刷遍Leetcode面試題系列連載(2): No.38 - 報數
    刷遍 Leetcode 面試題系列連載(1) - 入門與工具簡介上篇文章中我們主要科普了刷 LeetCode 對大家的作用,今天咱們就正式進行 LeetCode 算法題分析。解決遞歸問題的要點有如下幾個:但實際情況下,遞歸算法的複雜度比較難用數學公式來描述,自由度太大,我們常常需要將遞歸算法優化成迭代(非遞歸)的算法。今天我們來分析一個遞歸描述的字符串問題,後面我們會給出相應的 非遞歸 算法。
  • LeetCode刷題第三周【數組(簡單)】
    日期Oct.28 - Nov.03 2020(每日一題)Ps:本周我們接著上一周繼續刷數組,難度依舊是簡單,題目不再按順序,而是隨機挑選,下周開始會加深難度。隨著學校的開課,我會將平時上課的內容和筆記也整理成MK的格式上傳。
  • 如何科學的刷 Leetcode
    考慮到讀者的範圍比較廣,先對 Leetcode 做個科普。它是一個編程實踐網站,主要注重於培養使用者的編程技巧,去解決一些巧妙的算法題。這是它的官網,https://leetcode.com。我的方法觀裡,有三個重要的點,分別是:•找到科學的刷題順序•學習優秀的解題方案•及時整理題目的套路找到科學的刷題順序目前 Leetcode 收錄的算題題目,超過了一千道,數量非常之多。同學們也都是很有想法的人,於是,八仙過海,各有各的姿勢。
  • 如何更好地刷leetcode?談談我的一點看法
    https://www.zhihu.com/question/383250014/answer/2004466579下面高贊回答主要分成了兩個派系:所以新手到底應該怎麼刷題比較好?到底什麼刷題順序好?以我的拙見,我覺得兩種刷題方法都沒錯,只是應該分兩個階段。「第一階段新手入門還是不要盲目刷題,老老實實按專題刷,鞏固基礎,追求的是知識的深度。」
  • LeetCode專項刷題順序:棧
    我通過對LeetCode中「棧」部分的免費題目進行歸類、整理,歸納出如下推薦的刷題順序。在刷題順序的整理中,我主要遵循了如下規則:在題目分組方面,除綜合題外,每組題目的技巧、方法均相似,方便統一學習;在各組題目的順序方面,總體來說為由易到難,後一組題目比前一組略難一些,方便大家循序漸進;在每組題目的順序方面,均為由易到難(難度為我依據自己的理解,對LeetCode給出的難度進行微調的結果),方便大家循序漸進。
  • Leetcode刷題-排序
    本文先介紹幾種常見的排序算法的python實現,接著對幾道涉及排序的leetcode題目進行實踐常見的排序算法冒泡排序進行n(數組長度n)次循環,每次從左向右兩個數依次比較,然後將未排序的最大值移到最右時間複雜度:O(n^2)  空間複雜度
  • leetcode 刷500道題,筆試/面試穩嗎?
    如果我在 leetcode 堅持刷它個 500 道題,以後筆試/面試穩嗎?這裡我說下我的個人看法,我認為不穩。下面說說為啥不穩以及算法題應該如何刷、如何學才比較好,當然,也會推薦自己學過的資料。並且你可能不容易看出來,這些道題該用什麼方法好,有可能是多種方法的結合(當然,不是指這道題哈)。
  • 《LeetCode刷題Java版答案》pdf來了
    很多朋友在後臺留言說,刷LeetCode上的數據結構+算法題時難免會遇到困難,想要找一本答案題解做參考。
  • 刷 LeetCode 吃力正常嗎?
    Medium 的題目有幾種不同的情況,有些是問題比較難解決,有些是代碼寫起來超級複雜。對於前者,會需要花一定的時間想想怎麼解,有可能能把題目轉化為其它已經已經做過的題目。對於後者,需要花時間思考怎樣寫的代碼能夠覆蓋所有 corner cases 但又 maintainable,而且寫完不仔細檢查很容易在某些地方留下小 bug,就變成了要通過多次提交來排 bug。
  • leetcode刷題指南之shortestPalindrome
    那麼再來回顧原串,我們只能往原串的頭部放字母,意味著回文串的尾我們已經確定。方便起見我們不妨將原串逆轉一下,題目變成往一個串後面放最少的字母構造回文串。假設逆轉後的串是s,現在我們知道了回文串的頭部,因為回文串的頭和尾是一樣的,我們也就知道了回文串的尾部。
  • LeetCode刷題的正確打開方式
    首先說明,我不是算法高手,算是笨鳥先飛,勤能補拙型選手,我按照這套刷題方法幾乎拿到了國內所有網際網路大廠的offer,我相信大家也可以按照我的刷題方法有所收穫。接下來我會從刷題前的準備,刷題順序,正確的做題方法這三個方面來分享刷題的經驗。特別說明:本文主要是以找工作為目的的刷題,一切經驗都是從找工作面試的角度出發。
  • leetcode刷題指南之findtheduplicatenumber
    給出一個長度為n+1的數組,其中每個數字的範圍是[1,n],其中只有一個重複的數,現在要求找出這個重複的數,並且滿足以下條件:不能改動原始數組除了原始數組,只能另外開闢O(1)的空間算法複雜度一定要小於O(n^2)重複的那個數可能重複不止一次初看這題可能有很多種方式
  • ​LeetCode刷題實戰79:單詞搜索
    今天和大家聊的問題叫做 單詞搜索,我們先來看題面:https://leetcode-cn.com/problems/word-search/Given a 2D board and a word, find if the word exists in the grid.
  • leetcode刷題指南之RussianDollEnvelopes
    j].second)15                dp[i]=max(dp[i],dp[j]+1);16    int ans=0;17    for(int i=0;i<n;i++)18        ans=max(ans,dp[i]);19    return ans;20}21};推薦閱讀:leetcode
  • LeetCode 刷題指南(1):為什麼要刷題
    ,不過不可否認刷題確實能鍛鍊我們的編程能力,相信每個認真刷題的人都會有體會。現在提供在線編程評測的平臺有很多,比較有名的有 hihocoder,LintCode,以及這裡我們關注的 LeetCode。LeetCode 是一個非常棒的 OJ(Online Judge)平臺,收集了許多公司的面試題目。相對其他 OJ 平臺而言,有著下面的幾個優點:下面是我刷 LeetCode 的一些收穫,希望能夠引誘大家有空時刷刷題目。
  • leetcode刷題指南之PatchingArray
    +]; 9        else{10            ans++;11            sum += sum+1;12        }13    }14    return ans;15}16};作者:東大ACM退役隊伍編輯:劉凱旋推薦閱讀:leetcode