LeetCode應該這麼刷!

程式設計師大彬發表於2022-03-15

一杯茶,一包煙,一道力扣刷一天!

很多小夥伴剛開始刷LeetCode時,可能會吃力,經常刷了忘,忘了再刷,進入死迴圈,刷題效率很差。

其實,刷題也要講究技巧,掌握了正確的刷題方法,便能事半功倍~

下面分享幾點我自己的刷題經驗,希望對題主有所啟發!

主要有以下3點技巧:

  1. 按題目分類來刷。
  2. 難度要循序漸進。
  3. 做好總結。

1.按題目分類刷題

LeetCode上面的題目都有進行分類,建議在一個時間段只刷同一型別的題目,可以更全面的認識這一型別的資料結構or演算法,以加深對此類題型的理解。就好比練功夫,前期把一些基本招式都熟悉掌握,後面再串通這些招式,融會貫通。

我個人也是比較習慣按照分類來刷題,自我感覺效果還可以。

我將LeetCode題目進行了整理分類,大家可以參考下:

陣列操作

  • LeetCode54 螺旋矩陣
  • LeetCode75 顏色分類
  • LeetCode73 矩陣置零
  • LeetCode76 最小覆蓋子串
  • LeetCode384 打亂陣列
  • LeetCode581 最短無序連續子陣列
  • LeetCode945 使陣列唯一的最小增量

連結串列操作

  • LeetCode19 刪除連結串列的倒數第N個節點
  • LeetCode25 k個一組翻轉連結串列
  • LeetCode61 旋轉連結串列
  • LeetCode138 複製帶隨機指標的連結串列
  • LeetCode206 反轉連結串列
  • LeetCode141 環形連結串列
  • LeetCode142 環形連結串列Ⅱ
  • LeetCode160 相交連結串列
  • LeetCode707 設計連結串列

  • LeetCode20 有效的括號
  • LeetCode32 最長有效括號
  • LeetCode155 最小棧
  • LeetCode224 基本計算器
  • LeetCode232 用棧實現佇列
  • LeetCode316 去除重複字母

  • LeetCode215 陣列中的第K個最大元素
  • LeetCode347 前K個高頻元素

樹的遍歷

  • LeetCode94 二叉樹的中序遍歷
  • LeetCode102 二叉樹的層次遍歷
  • LeetCode110 平衡二叉樹
  • LeetCode144 二叉樹的前序遍歷
  • LeetCode145 二叉樹的後序遍歷

二叉搜尋樹相

  • LeetCode98 驗證二叉搜尋樹
  • LeetCode450 刪除二叉搜尋樹中的節點
  • LeetCode701 二叉搜尋樹中的插入操作

遞迴

  • LeetCode21 合併兩個有序連結串列
  • LeetCode101 對稱二叉樹
  • LeetCode104 二叉樹的最大深度
  • LeetCode226 翻轉二叉樹
  • LeetCode236 二叉樹的最近公共祖先

雙指標/滑動視窗

  • LeetCode3 無重複字元的最長子串
  • LeetCode11 盛最多水的容器
  • LeetCode15 三數之和
  • LeetCode16 最接近的三數之和
  • LeetCode26 刪除排序陣列中的重複項
  • LeetCode42 接雨水
  • LeetCode121 買賣股票的最佳時機
  • LeetCode209 長度最小的子陣列

快慢指標遍歷

  • LeetCode141 環形連結串列
  • LeetCode202 快樂數
  • LeetCode876 連結串列的中間結點

動態規劃

  • LeetCode5 最長迴文子串
  • LeetCode53 最大子序和
  • LeetCode62 不同路徑
  • LeetCode64 最小路徑和
  • LeetCode70 爬樓梯
  • LeetCode118 楊輝三角
  • LeetCode300 最長上升子序列
  • LeetCode1143 最長公共子序列

回溯法

  • LeetCode10 正規表示式匹配
  • LeetCode22 括號生成
  • LeetCode40 組合總和2
  • LeetCode46 全排列

貪心演算法

  • LeetCode 11. 盛最多水的容器
  • LeetCode 406. 根據身高重建佇列
  • LeetCode 55. 跳躍遊戲
  • LeetCode 122. 買賣股票的最佳時機 II
  • LeetCode 309. 最佳買賣股票時機含冷凍期
  • LeetCode 714. 買賣股票的最佳時機含手續費

並查集

  • LeetCode200 島嶼的個數
  • LeetCode547 省份數量

位運算

  • LeetCode52 N皇后Ⅱ
  • LeetCode338 位元位計數
  • LeetCode191 位1的個數
  • LeetCode231 2 的冪

2.難度要循序漸進

這一點是針對初學者來說的,切記一上來就幹hard級別的題目,會讓你懷疑人生的。。

正確的做法是循序漸進,從容易到中等,再過渡到困難級別。不過國內大廠考察演算法,一般都是中等難度,困難級別的應該很少考察。

3.做好總結

多做總結!多做總結!多做總結!

做好總結很重要,特別是對於沒思路的題目,看了其他大佬的解法之後,多思考有哪些題目也是類似解法,這種題目的關鍵解題步驟,把自己的理解寫下來,方便自己日後檢視。

雖然總結可能會花費你半個鍾甚至更多的時間,但是不總結的話,下次你遇到這個題目,可能會花更多的時間去思考、解答。

相關文章