---
# System prepended metadata

title: LeetCode Python

---


# LeetCode Python

## Ongoing
0207 Course Schedule

## Order list
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0001 | Two Sum | Easy | 3) Hashmap |
| 0011 | Container With Most Water | Medium (M+) | Two pointers |
| 0015 | Three Sum | Medium (M) | 2) <font color="#f00">3)</font> Two pointers |
| 0033 | Search in Rotated Sorted Array | Medium (M) | 1) <font color="#f00">2)</font> 3) Binary search |
| 0039 | Combination Sum | Medium | <font color="#f00">1)</font> Dynamic programming <br/> <font color="#f00">2) 3)</font> DFS |
| 0053 | Maximum Subarray | Medium (E+) | 3) Dynamic programming (Kadane's algorithm) |
| 0055 | Jump Game | Medium (E+) | <font color="#f00">1)</font> Greedy Algorithm |
| 0062 | Unique Paths | Medium | 1) <font color="#f00">2)</font> Dynamic programming |
| 0070 | Climbing Stairs | Easy | Dynamic programming |
| 0091 | Decode Ways | Medium (M) | <font color="#f00">1)</font> Dynamic programming <br/> 2) DP + DFS |
| 0121 | Best Time to Buy and Sell Stock | Easy | <font color="#f00">2)</font> Two pointers |
| 0133 | Clone Graph | Medium (M+) | <font color="#f00">1)</font> Hashmap <br/> <font color="#f00">2)</font> DFS + Hashmap <br/> <font color="#f00">3)</font> BFS + Hashmap |
| 0136 | Single Number | Easy (M) | <font color="#f00">2)</font> Bitwise |
| 0139 | Word Break | Medium (M+) | <font color="#f00">1)</font> Dynamic programming <br/> 2) Trie |
| 0152 | Maximum Product Subarray | Medium (M+) | 2) Dynamic programming |
| 0153 | Find Minimum in Rotated Sorted Array | Medium (M+) | 2) 3) 4) <font color="#f00">5)</font> Binary search |
| 0190 | Reverse Bits | Easy | <font color="#f00">1) 2)</font> Bitwise |
| 0191 | Number of One Bits | Easy | 1) <font color="#f00">2) 3)</font> Bitwise |
| 0198 | House Robber | Medium(E) | 1) <font color="#f00">2)</font> 3) Dynamic programming |
| 0202 | Happy Number | Easy | 1) Unhappy cycle <br/> <font color="#f00">2)</font> Cycle finding: Floyd's Algorithm: Tortoise and Hare Algorithm <br/> <font color="#f00">3)</font> Hashmap |
| 0213 | House Robber II | Medium(M+) | <font color="#f00">1)</font> 2) Dynamic programming |
| 0217 | Contains Duplicate | Easy | 1) Sort <br/> <font color="#f00">2)</font> Hashmap |
| 0238 | Product of Array Except Self | Medium | 2) <font color="#f00">3)</font> Prefix, postfix |
| 0268 | Missing Number | Easy (H-) | <font color="#f00">1)</font> <br/> <font color="#f00">2)</font> Bitwise |
| 0283 | Move Zeroes | Easy (M) | <font color="#f00">2)</font> One pointer <br/> 3) 4) Two pointers |
| 0300 | Longest Increasing Subsequence | Medium (M+) | 1) <font color="#f00">2) 3)</font> Dynamic programming <br/> <font color="#f00">4)</font> Greedy Algorithm |
| 0322 | Coin Change | Medium (M) | <font color="#f00">1)</font> Dynamic programming |
| 0338 | Counting Bits | Easy | <font color="#f00">2) 4)</font> Bitwise <br/> 3) 7) Dynamic programming <br/> 5) DP + Bitwise(BIT) <br/> 6) DP + Bitwise |
| 0371 | Sum of Two Integers | Medium (H) | <font color="#f00">1)</font> Bitwise |
| 0509 | Fibonacci Number | Easy | Dynamic programming |
| 0981 | Time Based Key-Value Store | Medium | <font color="#f00">1)</font> Binary search <br/> 2) ? |
| 1143 | Longest Common Subsequence | Medium (M) | <font color="#f00">1) 2)</font> Dynamic programming |
|   |  |   |  |

## Topic list
### BFS
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0133 | Clone Graph | Medium (M+) | <font color="#f00">1)</font> Hashmap <br/> <font color="#f00">2)</font> DFS + Hashmap <br/> <font color="#f00">3)</font> BFS + Hashmap |

### Binary Search
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0033 | Search in Rotated Sorted Array | Medium (M) | 1) <font color="#f00">2)</font> 3) Binary search |
| 0153 | Find Minimum in Rotated Sorted Array | Medium (M+) | 2) 3) 4) <font color="#f00">5)</font> Binary search |
| 0981 | Time Based Key-Value Store | Medium | <font color="#f00">1)</font> Binary search <br/> 2) ? |

### Bitwise
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0136 | Single Number | Easy (M) | <font color="#f00">2)</font> Bitwise |
| 0190 | Reverse Bits | Easy | <font color="#f00">1) 2)</font> Bitwise |
| 0191 | Number of One Bits | Easy | 1) <font color="#f00">2) 3)</font> Bitwise |
| 0268 | Missing Number | Easy (H-) | <font color="#f00">1)</font> <br/> <font color="#f00">2)</font> Bitwise |
| 0338 | Counting Bits | Easy | <font color="#f00">2) 4)</font> Bitwise <br/> 3) 7) Dynamic programming <br/> 5) DP + Bitwise(BIT) <br/> 6) DP + Bitwise |
| 0371 | Sum of Two Integers | Medium (H) | <font color="#f00">1)</font> Bitwise |

### DFS
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0039 | Combination Sum | Medium | <font color="#f00">1)</font> Dynamic programming <br/> <font color="#f00">2) 3)</font> DFS |
| 0091 | Decode Ways | Medium (M) | <font color="#f00">1)</font> Dynamic programming <br/> 2) DP + DFS |
| 0133 | Clone Graph | Medium (M+) | <font color="#f00">1)</font> Hashmap <br/> <font color="#f00">2)</font> DFS + Hashmap <br/> <font color="#f00">3)</font> BFS + Hashmap |

### Dynamic Programming
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0039 | Combination Sum | Medium | <font color="#f00">1)</font> Dynamic programming <br/> <font color="#f00">2) 3)</font> DFS |
| 0053 | Maximum Subarray | Medium (E+) | <font color="#f00">3)</font> Dynamic programming (Kadane's algorithm) |
| 0062 | Unique Paths | Medium | 1) <font color="#f00">2)</font> Dynamic programming |
| 0070 | Climbing Stairs | Easy | Dynamic programming |
| 0091 | Decode Ways | Medium (M) | <font color="#f00">1)</font> Dynamic programming <br/> 2) DP + DFS |
| 0139 | Word Break | Medium (M+) | <font color="#f00">1)</font> Dynamic programming <br/> 2) Trie |
| 0152 | Maximum Product Subarray | Medium (M+) | <font color="#f00">1)</font> <br/> <font color="#f00">2)</font> Dynamic programming |
| 0198 | House Robber | Medium(E) | 1) <font color="#f00">2)</font> 3) Dynamic programming |
| 0213 | House Robber II | Medium(M+) | <font color="#f00">1)</font> 2) Dynamic programming |
| 0300 | Longest Increasing Subsequence (M+) | Medium | 1) <font color="#f00">2) 3)</font> Dynamic programming <br/> <font color="#f00">4)</font> Greedy Algorithm |
| 0322 | Coin Change | Medium (M) | <font color="#f00">1)</font> Dynamic programming |
| 0338 | Counting Bits | Easy | <font color="#f00">2) 4)</font> Bitwise <br/> 3) 7) Dynamic programming <br/> 5) DP + Bitwise(BIT) <br/> 6) DP + Bitwise |
| 0509 | Fibonacci Number | Easy | Dynamic programming |
| 1143 | Longest Common Subsequence | Medium (M) | <font color="#f00">1) 2)</font> Dynamic programming |

### Greedy Algorithm
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0055 | Jump Game | Medium (E+) | <font color="#f00">1)</font> Greedy Algorithm |
| 0300 | Longest Increasing Subsequence | Medium (M+) | 1) <font color="#f00">2) 3)</font> Dynamic programming <br/> <font color="#f00">4)</font> Greedy Algorithm |

### Hash
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0001 | Two Sum | Easy | <font color="#f00">3)</font> Hashmap |
| 0133 | Clone Graph | Medium (M+) | <font color="#f00">1)</font> Hashmap <br/> <font color="#f00">2)</font> DFS + Hashmap <br/> <font color="#f00">3)</font> BFS + Hashmap |
| 0202 | Happy Number | Easy | 1) Unhappy cycle <br/> <font color="#f00">2)</font> Cycle finding: Floyd's Algorithm: Tortoise and Hare Algorithm <br/> <font color="#f00">3)</font> Hashmap |
| 0217 | Contains Duplicate | Easy | 1) Sort <br/> <font color="#f00">2)</font> Hashmap |

### Pointer
#### One Pointer
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0283 | Move Zeroes | Easy (M) | <font color="#f00">2)</font> One pointer <br/> 3) 4) Two pointers |

#### Two Pointers
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0011 | Container With Most Water | Medium (M+) | Two pointers |
| 0015 | Three Sum | Medium (M) | 2) <font color="#f00">3)</font> Two pointers |
| 0121 | Best Time to Buy and Sell Stock | Easy | <font color="#f00">2)</font> Two pointers |
| 0283 | Move Zeroes | Easy (M) | <font color="#f00">2)</font> One pointer <br/> 3) 4) Two pointers |

### Others
| No. | Problem | Difficulty | Solution |
| --- | :------ | :--------- | :------- |
| 0202 | Happy Number | Easy | 1) Unhappy cycle <br/> <font color="#f00">2)</font> Cycle finding: Floyd's Algorithm: Tortoise and Hare Algorithm <br/> <font color="#f00">3)</font> Hashmap |
| 0238 | Product of Array Except Self | Medium | 2) <font color="#f00">3)</font> Prefix, postfix |

### TBD
<br/>

ref:
[Algorithm - Theory](https://hackmd.io/HNTS1fpvRtqjpGlUiQEV3g)
[GitHub](https://github.com/jaleo73422/LeetCode_Python)
[Blind 75](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions)
[NeetCode YouTube](https://www.youtube.com/c/NeetCode/playlists)
[wisdompeak LeetCode in GitHub](https://github.com/wisdompeak/LeetCode)
[JIAKAOBO LeetCode](https://www.jiakaobo.com/leetcode.html)
[Grind 75](https://leetcode.com/list/oxsc18br/)
[Grind 169](https://leetcode.com/list/ed66mkcj/)
[Coding interview study plan - what to study and practice based on time left](https://www.techinterviewhandbook.org/coding-interview-study-plan/)