# 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/)