一杯茶,一包煙,一道力扣刷一天!
很多小夥伴剛開始刷LeetCode時,可能會吃力,經常刷了忘,忘了再刷,進入死迴圈,刷題效率很差。
其實,刷題也要講究技巧,掌握了正確的刷題方法,便能事半功倍~
下面分享幾點我自己的刷題經驗,希望對題主有所啟發!
主要有以下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.做好總結
多做總結!多做總結!多做總結!
做好總結很重要,特別是對於沒思路的題目,看了其他大佬的解法之後,多思考有哪些題目也是類似解法,這種題目的關鍵解題步驟,把自己的理解寫下來,方便自己日後檢視。
雖然總結可能會花費你半個鍾甚至更多的時間,但是不總結的話,下次你遇到這個題目,可能會花更多的時間去思考、解答。