介紹
leetcode 題解,記錄自己的 leetcode 解題之路。
本倉庫目前分為五個部分:
-
第一個部分是 leetcode 經典題目的解析,包括思路,關鍵點和具體的代碼實現。
-
第二部分是對於數據結構與算法的總結
-
第三部分是 anki 卡片, 將 leetcode 題目按照一定的方式記錄在 anki 中,方便大家記憶。
-
第四部分是每日一題
-
第五部分是計划, 這里會記錄將來要加入到以上三個部分內容
使用指南
-
對於最近添加的部分, 后面會有 🆕 標注
-
對於最近更新的部分, 后面會有 🖊 標注
-
將來會在這里更新anki卡片
-
這里有一張互聯網公司面試中經常考察的問題類型總結的思維導圖,我們可以結合圖片中的信息分析一下。
其中算法,主要是以下幾種:
-
基礎技巧:分治、二分、貪心
-
排序算法:快速排序、歸並排序、計數排序
-
搜索算法:回溯、遞歸、深度優先遍歷,廣度優先遍歷,二叉搜索樹等
-
圖論:最短路徑、最小生成樹
-
動態規划:背包問題、最長子序列
數據結構,主要有如下幾種:
-
數組與鏈表:單 / 雙向鏈表
-
棧與隊列
-
哈希表
-
堆:最大堆 / 最小堆
-
樹與圖:最近公共祖先、並查集
-
字符串:前綴樹(字典樹) / 后綴樹
精彩預告
0042.trapping-rain-water:
瀏覽器中的棧:
backtrack problems:
0198.house-robber:
0454.4-sum-ii:
Top題目進度
-
Top 100 Liked Questions (54 / 100)
-
Top Interview Questions (82 / 145)
傳送門
leetcode 經典題目的解析
簡單難度
-
0020.Valid Parentheses
-
0026.remove-duplicates-from-sorted-array
-
0088.merge-sorted-array
-
0104.maximum-depth-of-binary-tree 🆕
-
0121.best-time-to-buy-and-sell-stock
-
0122.best-time-to-buy-and-sell-stock-ii
-
0125.valid-palindrome 🆕
-
0136.single-number
-
0155.min-stack 🆕
-
0167.two-sum-ii-input-array-is-sorted
-
0172.factorial-trailing-zeroes 🆕
-
0169.majority-element
-
0190.reverse-bits
-
0191.number-of-1-bits
-
0198.house-robber
-
0203.remove-linked-list-elements
-
0206.reverse-linked-list
-
0219.contains-duplicate-ii
-
0226.invert-binary-tree
-
0263.ugly-number
-
0283.move-zeroes
-
0342.power-of-four
-
0349.intersection-of-two-arrays
-
0371.sum-of-two-integers
-
0575.distribute-candies
中等難度
-
0002. Add Two Numbers
-
0003. Longest Substring Without Repeating Characters
-
0005.longest-palindromic-substring 🆕
-
0011.container-with-most-water
-
0015.3-sum
-
0019. Remove Nth Node From End of List
-
0024. Swap Nodes In Pairs
-
0029.divide-two-integers 🆕
-
0039.combination-sum
-
0040.combination-sum-ii
-
0046.permutations
-
0047.permutations-ii
-
0048.rotate-image 🆕
-
0049.group-anagrams 🆕
-
0055.jump-game
-
0056.merge-intervals
-
0062.unique-paths
-
0073.set-matrix-zeroes
-
0075.sort-colors
-
0078.subsets
-
0086.partition-list
-
0090.subsets-ii
-
0091.decode-ways
-
0092.reverse-linked-list-ii
-
0094.binary-tree-inorder-traversal
-
0098.validate-binary-search-tree 🆕
-
0102.binary-tree-level-order-traversal
-
0103.binary-tree-zigzag-level-order-traversal
-
0131.palindrome-partitioning 🆕
-
0139.word-break
-
0144.binary-tree-preorder-traversal
-
0150.evaluate-reverse-polish-notation
-
0152.maximum-product-subarray
-
0199.binary-tree-right-side-view
-
0201.bitwise-and-of-numbers-range
-
0208.implement-trie-prefix-tree
-
0209.minimum-size-subarray-sum
-
0230.kth-smallest-element-in-a-bst
-
0236.lowest-common-ancestor-of-a-binary-tree🆕
-
0238.product-of-array-except-self
-
0240.search-a-2-d-matrix-ii
-
0279.perfect-squares
-
0309.best-time-to-buy-and-sell-stock-with-cooldown 🆕
-
0322.coin-change
-
0328.odd-even-linked-list
-
0334.increasing-triplet-subsequence
-
0365.water-and-jug-problem
-
0416.partition-equal-subset-sum
-
0445.add-two-numbers-ii
-
0454.4-sum-ii
-
0494.target-sum
-
0516.longest-palindromic-subsequence 🆕
-
0518.coin-change-2
-
0609.find-duplicate-file-in-system 🆕
-
0875.koko-eating-bananas
-
0877.stone-game
-
0887.super-egg-drop
-
0900.rle-iterator
-
1031.maximum-sum-of-two-non-overlapping-subarrays 🆕
困難難度
-
0023.merge-k-sorted-lists
-
0032.longest-valid-parentheses 🆕
-
0042.trapping-rain-water
-
0128.longest-consecutive-sequence 🆕
-
0145.binary-tree-postorder-traversal
-
0146.lru-cache
-
0239.sliding-window-maximum
-
0295.find-median-from-data-stream 🆕
-
0301.remove-invalid-parentheses
數據結構與算法的總結
-
數據結構(草稿)
-
基礎算法(草稿)
-
二叉樹的遍歷
-
動態規划
-
哈夫曼編碼和游程編碼
-
布隆過濾器
-
字符串問題
anki 卡片
Anki主要分為兩個部分:一部分是關鍵點到題目的映射,另一部分是題目到思路,關鍵點,代碼的映射。
全部卡片都在anki-card
使用方法:
anki - 文件 - 導入 - 下拉格式選擇“打包的 anki集合”,然后選中你下載好的文件,確定即可。
更多關於anki使用方法的請查看anki官網
目前已更新卡片一覽(僅列舉正面):
-
二分法解決問題的關鍵點是什么,相關問題有哪些?
-
如何用棧的特點來簡化操作, 涉及到的題目有哪些?
-
雙指針問題的思路以及相關題目有哪些?
-
滑動窗口問題的思路以及相關題目有哪些?
-
回溯法解題的思路以及相關題目有哪些?
-
數論解決問題的關鍵點是什么,相關問題有哪些?
-
位運算解決問題的關鍵點是什么,相關問題有哪些?
每日一題
-
每日一題匯總
-
每日一題認領區
計划
-
anki 卡片 完善
-
字符串類問題匯總