README.en.md 10.6 KB
Newer Older
S
Songkeys 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
# LeetCode

[简体中文](./README.md) | English

---

## Introduction

![leetcode.jpeg](./assets/leetcode.jpeg)

LeetCode Solutions: A Record of My Problem Solving Journey.

This repository will be divided into four parts for now:

- The first part is the solutions to some classic problems on LeetCode, including the idea thinkings, key points and code implementations.

- The second part is the summary of data structures and algorithms.

- The third part is [Anki flashcards](https://apps.ankiweb.net) that record the LeetCode problems in a certain way so as to make it easier to remember.

- The fourth part is future plans on content that would be introduced into the above parts.

> Only when having mastered the basic data structures and algorithms can you solve complex problems easily.



## Usage Instructions

- For the parts that were added recently, there will be a 🆕 behind.
- For the parts that were updated recently, there will be a 🖊 behind.
- Here will be the place to update Anki Flashcards in the future as well.
- Here is a mind mapping graph showing the summary of categorizations of problems that are questioned frequently in interviews. We could analyze according to the information in the graph.

![leetcode-zhihu](./assets//leetcode-zhihu.jpg)

(Picture credited by [LeetCode-cn](https://www.zhihu.com/question/24964987/answer/586425979).)

The algorithms mainly includes:

- Basic skills: Divide-and-Conquer; Binary; Greedy
- Sorting algorithms: Quicksort; Merge Sort; Counting Sort
- Searching algorithms: Backtracking; Recursion; Depth-First-Search (DFS); Breath-First-Search (BFS); Binary Search Tree; etc.
- Graph theory: Shortest Path Problem; Minimal Spanning Tree
- Dynamic Programming: Knapsack Problem; Longest Common Subsequence (LCS) Problem

The data structures mainly includes:

- Array and linked list: Singly/Doubly-Linked List
- Stack and queue
- Hash table
- Heap: Min-Max Heap
- Tree and Graph: Lowest Common Ancestor (LCA); Disjoint-Set
- String: Prefix Tree (Trie); Suffix Tree



## Previews

[0042.trapping-rain-water](./problems/42.trapping-rain-water.md):

![0042.trapping-rain-water](./assets/problems/42.trapping-rain-water-1.png)

[Stack in Browser](./thinkings/basic-data-structure.md)

![basic-data-structure-call-stack](./assets/thinkings/basic-data-structure-call-stack.png)

[backtrack problems](./problems/90.subsets-ii.md):

![backtrack](./assets/problems/backtrack.png)

[0198.house-robber](./problems/198.house-robber.md):

![198.house-robber](./assets/problems/198.house-robber.png)

[0454.4-sum-ii](./problems/454.4-sum-ii.md):

![454.4-sum-ii](./assets/problems/454.4-sum-ii.png)



## Top Problems Progress

L
luzhipeng 已提交
83
- [Top 100 Linked Questions](https://leetcode.com/problemset/top-100-liked-questions/) (45 / 100)
S
Songkeys 已提交
84

L
luzhipeng 已提交
85
- [Top Interview Questions](https://leetcode.com/problemset/top-interview-questions/) (65 / 145)
S
Songkeys 已提交
86 87 88 89 90 91 92 93 94 95 96 97 98 99



## Portals

### Solutions to LeetCode Classic Problems

> Here only lists some representative problems but not all.

#### Easy

- [0020.Valid Parentheses](./problems/20.validParentheses.md)
- [0026.remove-duplicates-from-sorted-array](./problems/26.remove-duplicates-from-sorted-array.md)
- [0088.merge-sorted-array](./problems/88.merge-sorted-array.md)
L
luzhipeng 已提交
100 101
- [0121.best-time-to-buy-and-sell-stock](./problems/121.best-time-to-buy-and-sell-stock.md)
- [0122.best-time-to-buy-and-sell-stock-ii](./problems/122.best-time-to-buy-and-sell-stock-ii.md)
S
Songkeys 已提交
102 103
- [0136.single-number](./problems/136.single-number.md)
- [0167.two-sum-ii-input-array-is-sorted](./problems/167.two-sum-ii-input-array-is-sorted.md)
L
luzhipeng 已提交
104
- [0172.factorial-trailing-zeroes](./problems/172.factorial-trailing-zeroes.md) 🆕
S
Songkeys 已提交
105 106 107 108 109 110 111 112
- [0169.majority-element](./problems/169.majority-element.md)
- [0190.reverse-bits](./problems/190.reverse-bits.md)
- [0191.number-of-1-bits](./problems/191.number-of-1-bits.md)
- [0198.house-robber](./problems/198.house-robber.md) 🆕
- [0203.remove-linked-list-elements](./problems/203.remove-linked-list-elements.md)
- [0206.reverse-linked-list](./problems/206.reverse-linked-list.md)
- [0219.contains-duplicate-ii](./problems/219.contains-duplicate-ii.md)
- [0226.invert-binary-tree](./problems/226.invert-binary-tree.md)
L
luzhipeng 已提交
113
- [0263.ugly-number](./problems/263.ugly-number.md) 🆕
S
Songkeys 已提交
114
- [0283.move-zeroes](./problems/283.move-zeroes.md)
L
luzhipeng 已提交
115
- [0342.power-of-four](./problems/342.power-of-four.md) 🆕
S
Songkeys 已提交
116
- [0349.intersection-of-two-arrays](./problems/349.intersection-of-two-arrays.md)
L
luzhipeng 已提交
117
- [0575.distribute-candies](./problems/575.distribute-candies.md) 🆕
S
Songkeys 已提交
118 119 120 121 122 123 124


#### Medium

- [0002. Add Two Numbers](./problems/2.addTwoNumbers.md)
- [0003. Longest Substring Without Repeating Characters](./problems/3.longestSubstringWithoutRepeatingCharacters.md)
- [0011.container-with-most-water](./problems/11.container-with-most-water.md)
L
luzhipeng 已提交
125
- [0015.3-sum](./problems/15.3-sum.md)
S
Songkeys 已提交
126 127 128 129 130 131
- [0019. Remove Nth Node From End of List](./problems/19.removeNthNodeFromEndofList.md)
- [0024. Swap Nodes In Pairs](./problems/24.swapNodesInPairs.md)
- [0039.combination-sum](./problems/39.combination-sum.md)
- [0040.combination-sum-ii](./problems/40.combination-sum-ii.md)
- [0046.permutations](./problems/46.permutations.md)
- [0047.permutations-ii](./problems/47.permutations-ii.md)
L
luzhipeng 已提交
132 133
- [0055.jump-game](./problems/55.jump-game.md)
- [0062.unique-paths](./problems/62.unique-paths.md )
S
Songkeys 已提交
134
- [0075.sort-colors](./problems/75.sort-colors.md)
L
luzhipeng 已提交
135
- [0078.subsets](./problems/78.subsets.md) 
S
Songkeys 已提交
136 137 138 139 140 141 142 143 144
- [0086.partition-list](./problems/86.partition-list.md)
- [0090.subsets-ii](./problems/90.subsets-ii.md)
- [0091.decode-ways](./problems/91.decode-ways.md) 🆕 
- [0092.reverse-linked-list-ii](./problems/92.reverse-linked-list-ii.md)
- [0094.binary-tree-inorder-traversal](./problems/94.binary-tree-inorder-traversal.md)
- [0102.binary-tree-level-order-traversal](./problems/102.binary-tree-level-order-traversal.md)
- [0103.binary-tree-zigzag-level-order-traversal](./problems/103.binary-tree-zigzag-level-order-traversal.md)
- [0139.word-break](./problems/139.word-breakmd)
- [0144.binary-tree-preorder-traversal](./problems/144.binary-tree-preorder-traversal.md)
L
luzhipeng 已提交
145
- [0150.evaluate-reverse-polish-notation](./problems/150.evaluate-reverse-polish-notation.md)
S
Songkeys 已提交
146 147 148
- [0152.maximum-product-subarray](./problems/152.maximum-product-subarray.md) 🆕  
- [0199.binary-tree-right-side-view](./problems/199.binary-tree-right-side-view.md)
- [0201.bitwise-and-of-numbers-range](./problems/201.bitwise-and-of-numbers-range.md)
L
luzhipeng 已提交
149
- [0208.implement-trie-prefix-tree](./problems/208.implement-trie-prefix-tree.md)
L
luzhipeng 已提交
150
- [0209.minimum-size-subarray-sum](./problems/209.minimum-size-subarray-sum.md)
L
luzhipeng 已提交
151
- [0236.lowest-common-ancestor-of-a-binary-tree](./problems/236.lowest-common-ancestor-of-a-binary-tree.md)
S
Songkeys 已提交
152 153 154 155 156 157
- [0238.product-of-array-except-self](./problems/238.product-of-array-except-self.md) 🆕 
- [0240.search-a-2-d-matrix-ii](./problems/240.search-a-2-d-matrix-ii.md)
- [0279.perfect-squares](./problems/279.perfect-squares.md)
- [0309.best-time-to-buy-and-sell-stock-with-cooldown](./problems/309.best-time-to-buy-and-sell-stock-with-cooldown.md) 🆕 
- [0322.coin-change](./problems/322.coin-change.md)
- [0328.odd-even-linked-list](./problems/328.odd-even-linked-list.md)
L
luzhipeng 已提交
158 159
- [0334.increasing-triplet-subsequence](./problems/334.increasing-triplet-subsequence.md)
- [0365.water-and-jug-problem](./problems/365.water-and-jug-problem.md) 🆕 
S
Songkeys 已提交
160 161 162
- [0416.partition-equal-subset-sum](./problems/416.partition-equal-subset-sum.md)
- [0445.add-two-numbers-ii](./problems/445.add-two-numbers-ii.md)
- [0454.4-sum-ii](./problems/454.4-sum-ii.md) 🆕
L
luzhipeng 已提交
163
- [0494.target-sum](./problems/494.target-sum.md)
S
Songkeys 已提交
164
- [0518.coin-change-2](./problems/518.coin-change-2.md)
L
luzhipeng 已提交
165
- [0609.find-duplicate-file-in-system](./problems/609.find-duplicate-file-in-system.md) 🆕
S
Songkeys 已提交
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
- [0875.koko-eating-bananas](./problems/875.koko-eating-bananas.md)
- [0877.stone-game](./problems/877.stone-game.md)
- [0887.super-egg-drop](./problems/887.super-egg-drop.md)
- [0900.rle-iterator](./problems/900.rle-iterator.md)

#### Hard
- [0023.merge-k-sorted-lists](./problems/23.merge-k-sorted-lists.md)
- [0042.trapping-rain-water](./problems/42.trapping-rain-water.md)
- [0128.longest-consecutive-sequence](./problems/128.longest-consecutive-sequence.md) 🆕 
- [0145.binary-tree-postorder-traversal](./problems/145.binary-tree-postorder-traversal.md)
- [0146.lru-cache](./problems/146.lru-cache.md)
- [0239.sliding-window-maximum](./problems/239.sliding-window-maximum.md)
- [0295.find-median-from-data-stream](./problems/295.find-median-from-data-stream.md) 🆕 
- [0301.remove-invalid-parentheses](./problems/301.remove-invalid-parentheses.md)



### Summary of Data Structures and Algorithms

- 🖊 [Data Structure](./thinkings/basic-data-structure.md) (Drafts)
- 🖊 [Binary Tree Traversal](./thinkings/binary-tree-traversal.md)
- [Dynamic Programming](./thinkings/dynamic-programming.md)
- [Huffman Encode and Run Length Encode](./thinkings/run-length-encode-and-huffman-encode.md)
- [Bloom Filter](./thinkings/bloom-filter.md)



### Anki Flashcards

Anki falshcards would be mainly two parts: the mappings from key points to problems; the mappings from problems to idea thinks, key points and code implementations.

All flashcards are put in [anki-card](./assets/anki/leetcode.apkg).

> Please check [here](https://apps.ankiweb.net/) for more about the usage of Anki.

Latest updated flashcards (only lists the front page):

- What is the key point of the binary search algorithm? Related problems?
- How to simplify the operations using the features of stacks? Related problems?
- The thinkings and related problems of double-pointers problems?
- The thinkings and related problems of sliding window problems?
- The thinkings and related problems of backtracking?
L
luzhipeng 已提交
208 209 210 211 212 213
- The thinkings and related problems of number theory?
- The thinkings and related problems of bit operations?

> WIP: the translation of the flashcards are on the way.

> problems added:#2 #3 #11
S
Songkeys 已提交
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249



### Future Plans

- [Complete Anki Flashcards](./assets/anki/)

- [Collection of String Problem](./todo/str/)



## Community Chat Groups

We're still on the early stage, so feedback from community is very welcome. For sake of reducing the costs of communication, I created some chat groups.

### Telegram

[http://t.me/leetcode_intl](http://t.me/leetcode_intl)

### QQ (For China Region)

![qq-group-chat](./assets/qq-group-chat.png)

### WeChat (For China Region)

![wechat-group-chat](./assets/wechat-group-chat.jpeg)

(Add this bot and reply "leetcode" to join the group.)



## Contribution

- If you have any ideas, [Issues](https://github.com/azl397985856/leetcode/issues) or chat in groups.
- If you want to commit to the repository, Pull Request is welcome.
- If you want to edit images resources in this project, [here](./assets/drawio/) lists the files that can be edited on [draw.io](https://www.draw.io/).