LeetCode 題目總結


本博客不定期更新LeetCode題目總結,所有題目使用Java實現,小部分題目也提供JavaScript代碼。我不追求一行AC但是我追求一題多解,比較常規的思路,解釋清楚復雜度,代碼可讀性強。歡迎留言和評論,共同進步。這本是我自己用來復習的筆記,如果也能幫到你,那也是我的福報。

如果你想按類型刷題,可以參考我的標簽。我做出的分類比LC官方的更細一些,比如我有如下展示的這些類型,其中有一些類型在2021年6月以前官方沒有收錄,有的按照題設分類,有的按照思路/解法分類。同時有一些題目的解法或者思想很類似的,我也會以相關題目的形式列在文章的最底部。對於每一種類型的題,你可以基本按照題號從小到大開始刷,比較小的題號(尤其前400)都是經典題,比較大的題號往往是前400題內相同類型題目的 followup 或變形。題是刷不完的,只有總結反思才會有提高。

  • flood fill 島嶼類 - 往往是通過BFS/DFS從一個點開始遍歷整個二維數組,根據題意找島的個數/面積
  • matrix 矩陣類,跟島嶼類型的題很接近,但是主要考點是二維數組的非常規遍歷,翻轉。官方把島嶼類的題也歸類到 matrix 一類了,我這里做了一些區分
  • monotonic stack 單調棧 - 不容易想到但是的確能解決問題的一種思路,如果不用單調棧,暴力解基本是 O(n^2) 級別的
  • two pointer 雙指針,包括很多可以用雙指針做但是沒有標注成雙指針類型的題
  • line sweep 掃描線
  • counting sort 計數排序
  • bucket sort 桶排序
  • Longest Increasing Subsequence (LIS) 最長遞增子序列
    • 這個類型的題往往跟DP有關
  • two sum 兩數之和 - 一些算是 two sum 的 followup 題
  • MOD - 結果非常大,需要取模的題。如果需要優化,大多涉及到二分
  • binary search 二分法
  • Dijkstra 迪傑斯特拉算法
    • 使用類似廣度優先搜索的方法解決有權圖的單源最短路徑問題
  • graph 圖論 - 包括很多 input signature 給的是樹但是實際是需要自己把圖或鄰接表建立起來的題,和官方壓根沒有給出 graph 這個 tag 的題(比如1192題2021年6月這個題官方加了tag了
  • knapsack 背包問題 - 動態規划中的一個子類
  • memorization - 記憶化(遞歸)- 動態規划中的一個子類
  • simulation - 模擬,一般不涉及算法,就是根據題意實現

發現博客園沒有很好的文章目錄,我做了一個騰訊文檔記錄總結寫過題解的題目並附上鏈接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM