Skip to content

CescWang1991/LeetCode-Python

Repository files navigation

LeetCode-Python

Solutions for problemsets in Algorithm on LeetCode

# Title Java Python Golang Difficulty Category
1 Two Sum Java Python Golang Easy Hash Table
2 Add Two Numbers Java Python Golang Medium Linked List
3 Longest Substring Without Repeating Characters Java Python Golang Medium Hash Table
4 Median of Two Sorted Arrays Java Python Golang Hard Binary Search
5 Longest Palindromic Substring Java Python Golang Medium DP
6 ZigZag Conversion Java Python Golang Medium String
7 Reverse Integer Java Python Golang Easy Math
9 Palindrome Number Java Python Golang Easy Math
10 Regular Expression Matching Java Python Golang Hard DP/ Backtracking
11 Container With Most Water Java Python Golang Medium Two Pointers
14 Longest Common Prefix Java Python Golang Easy String
15 Three Sum Java Python Golang Medium Two Pointers
16 Three Sum Closest Java Python Golang Medium Two Pointers
17 Letter Combinations of a Phone Number Java Python Golang Medium Backtracking
18 Four Sum Java Python Golang Medium Two Pointers
19 Remove Nth Node From End Of List Java Python Golang Medium Linked List
20 Valid Parentheses Java Python Golang Easy Stack
21 Merge Two Sorted Lists Java Python Golang Easy Linked List
22 Generate Parentheses Java Python Golang Medium Backtracking
23 Merge k Sorted Lists Java Python Golang Hard Linked List/ Heap
24 Swap Pairs Java Python Golang Medium Linked List
25 Reverse Nodes in k-Group Java Python Golang Hard Linked List
26 Remove Duplicates from Sorted Array Java Python Golang Easy Two Pointers
27 Remove Element Java Python Golang Easy Two Pointers
28 Implement strStr() Java Python Golang Easy Two Pointers
29 Divide Two Integers Java Python Golang Medium Binary Search
30 Substring with Concatenation of All Words Java Python Golang Hard Hash Table/ Two Pointers
31 Next Permutation Java Python Golang Medium Array
32 Longest Valid Parentheses Java Python Golang Hard DP
33 Search in Rotated Sorted Array Java Python Golang Medium Binary Search
34 Find First and Last Position of Element in Sorted Array Java Python Golang Medium Binary Search
35 Search Insert Position Java Python Golang Easy Binary Search
36 Valid Sudoku Java Python Golang Medium Hash Table
37 Sudoku Solver Java Python Golang Hard Hash Table/ Backtracking
38 Count and Say Java Python Golang Easy String
39 Combination Sum Java Python Golang Medium Backtracking
40 Combination Sum II Java Python Golang Medium Backtracking
41 First Missing Positive Java Python Golang Hard Array
42 Trapping Rain Water Java Python Golang Hard Stack/ Two Pointers
44 Wildcard Matching Java Python Golang Hard DP/ Backtracking
45 Jump Game II Java Python Golang Hard Greedy
46 Permutations Java Python Golang Medium Backtracking
47 Permutations II Java Python Golang Medium Backtracking
48 Rotate Image Java Python Golang Medium Array
49 Group Anagrams Java Python Golang Medium Hash Table
50 Pow(x, n) Java Python Golang Medium Binary Search
51 N-Queens Java Python Golang Hard Backtracking
52 N-Queens II Java Python Golang Hard Backtracking
53 Maximum Subarray Java Python Golang Easy DP/ Divide and Conquer
54 Spiral Matrix Java Python Golang Medium Array
55 Jump Game Java Python Golang Medium Greedy
56 Merge Intervals Java Python Golang Medium Sorting
57 Insert Interval Java Python Golang Hard Sorting
58 Length of Last Word Java Python Golang Easy String
59 Spiral Matrix II Java Python Golang Medium Array
60 Permutation Sequence Java Python Golang Medium Backtracking
61 Rotate List Java Python Golang Medium Linked List/ Two Pointers
62 Unique Paths Java Python Golang Medium DP
63 Unique Paths II Java Python Golang Medium DP
64 Minimal Path Sum Java Python Golang Medium DP
66 Plus One Java Python Golang Easy Array
67 Add Binary Java Python Golang Easy String
68 Text Justification Java Python Golang Hard String
69 Sqrt(x) Java Python Golang Easy Binary Search
70 Climbing Stairs Java Python Golang Easy DP
72 Edit Distance Java Python Golang Medium DP
73 Set Matrix Zeroes Java Python Golang Medium Array
74 Search Target Java Python Golang Medium Binary Search
75 Sort Colors Java Python Golang Medium Two Pointers
76 Minimum Window Substring Java Python Golang Hard Two Pointer/ Hash Table
77 Combinations Java Python Golang Medium Backtracking
78 Subsets Java Python Golang Medium Backtracking
79 Word Search Java Python Golang Medium Backtracking
80 Remove Duplicates from Sorted Arrays Java Python Golang Medium Two Pointers
81 Search in Rotated Sorted Array II Java Python Golang Medium Binary Search
82 Remove Duplicates from Sorted List II Java Python Golang Medium Linked List
83 Remove Duplicates from Sorted List Java Python Golang Easy Linked List
84 Largest Rectangle Area Java Python Golang Hard Stack
85 Maximum Rectangle Java Python Golang Hard DP
86 Partition List Java Python Golang Medium Linked List
87 Scramble String Java Python Golang Hard DP
88 Merge Sorted Array Java Python Golang Easy Array
89 Gray Code Java Python Golang Medium Backtracking
90 Subset II Java Python Golang Medium Backtracking
91 Decode Ways Java Python Golang Medium DP
92 Reverse Linked List II Java Python Golang Medium Linked List
93 Restore IP Address Java Python Golang Medium Backtracking
94 Binary Tree Inorder Traversal Java Python Golang Medium Tree/ Stack
95 Unique Binary Search Tree II Java Python Golang Medium Tree/ DP
96 Unique Binary Search Tree Java Python Golang Medium Tree/ DP
97 Interleaving String Java Python Golang Hard DP
98 Valid Binary Search Tree Java Python Golang Medium Tree/ DFS
99 Recover Binary Search Tree Java Python Golang Hard Tree/ DFS
100 Same Tree Java Python Golang Easy Tree/ DFS
101 Symmetric Tree Java Python Golang Easy Tree/ DFS
102 Binary Tree Level Order Traversal Java Python Golang Medium Tree/ BFS
103 Binary Tree Zigzag Level Order Traversal Java Python Golang Medium Tree/ BFS
104 Maximum Depth of Binary Tree Java Python Golang Easy Tree/ DFS
105 ConStruct Binary Tree from Preorder and Inorder Traversal Java Python Golang Medium Tree/ DFS
106 Construct Binary Tree From Inorder and Postorder Traversal Java Python Golang Medium Tree/ DFS
107 Binary Tree Level Order Traversal II Java Python Golang Easy Tree/ BFS
108 Convert Sorted Array to Binary Search Tree Java Python Golang Easy Tree/ DFS
109 Convert Sorted List to Binary Search Tree Java Python Golang Medium DFS/ Linked List
110 Balanced Binary Tree Java Python Golang Easy Tree/ DFS
111 Minimum Depth of Binary Tree Java Python Golang Easy Tree/ DFS
112 Path Sum Java Python Golang Easy Tree/ DFS
113 Path Sum II Java Python Golang Medium Tree/ DFS
114 Flatten Binary Tree to Linked List Java Python Golang Medium Tree/ DFS
115 Distinct Subsequences Java Python Golang Hard DP
116 Populating Next Right Pointers for Each Node Java Python Golang Medium Tree/ DFS
117 Populating Next Right Pointers for Each Node II Java Python Golang Medium Tree/ DFS
118 Pascal's Triangle Java Python Golang Easy Array
119 Pascal's Triangle II Java Python Golang Easy Array/ DP
120 Triangle Java Python Golang Medium DP
121 Best Time to Buy and Sell Stock Java Python Golang Easy Array
122 Best Time to Buy and Sell Stock II Java Python Golang Easy Array
123 Best Time to Buy and Sell Stock III Java Python Golang Hard Array
124 Binary Tree Maximum Path Sum Java Python Golang Hard Tree/ DFS
125 Valid Palindrome Java Python Golang Easy Two Pointers
126 Word Ladder II Java Python Golang Hard BFS
127 Word Ladder Java Python Golang Medium BFS
128 Longest Consecutive Sequence Java Python Golang Hard Union Find
129 Sum Root to Leaf Numbers Java Python Golang Medium Tree/ DFS
130 Surrounded Regions Java Python Golang Medium DFS/ BFS/ Union Find
131 Palindrome Partitioning Java Python Golang Medium Backtracking
132 Palindrome Partitioning II Java Python Golang Hard DP
133 Clone Graph Java Python Meduim DFS/ BFS
134 Gas Station Java Python Golang Medium Greedy
135 Candy Java Python Golang Hard Greedy
136 Single Number Java Python Golang Easy Bit Manipulation
137 Single Number II Java Python Golang Medium Bit Manipulation
138 Copy List with Random Pointer Java Python Golang Medium Hash Table
139 Word Break Java Python Golang Medium DP
140 Word Break II Java Python Golang Hard DP/ Backtracking
141 Linked List Cycle Java Python Golang Easy Linked List
142 Linked List Cycle II Java Python Golang Medium Linked List
143 Reorder List Java Python Golang Medium Linked List
144 Binary Tree Preorder Traversal Java Python Golang Medium Tree/ DFS
145 Binary Tree Postorder Traversal Java Python Golang Hard Tree/ DFS
146 LRU Cache Java Python Golang Hard Hash Table
147 Insertion Sort List Java Python Golang Medium Linked List/ Sorting
148 Sort List Java Python Golang Medium Linked List/ Sorting
149 Max Points on a Line Java Python Golang Hard Hash Table
150 Evaluate Reverse Polish Notation Java Python Golang Medium Stack
151 Reverse Words in a String Java Python Golang Medium String
152 Maximum Product Subarray Java Python Golang Medium DP
153 Find Minimum in Rotated Sorted Array Java Python Golang Medium Binary Search
154 Find Minimum in Rotated Sorted Array II Java Python Golang Hard Binary Search
155 Min Stack Java Python Golang Easy Stack
156 Binary Tree Upside Down* Java Python Golang Medium Tree/ DFS
159 Longest Substring with At Most Two Distinct Characters* Java Python Golang Medium Hash Table/ Array
160 Intersection of Two Linked List Java Python Golang Easy Linked List
161 One Edit Distance* Java Python Golang Easy String
162 Find Peak Element Java Python Golang Medium Binary Search
163 Missing Ranges* Java Python Golang Medium Array
164 Maximum Gap Java Python Golang Hard Sorting
165 Compare Version Numbers Java Python Golang Medium String
166 Fraction to Recurring Decimal Java Python Golang Medium Hash Table
167 Two Sum II - Input array is sorted Java Python Golang Easy Binary Search
168 Excel Sheet Column Title Java Python Golang Easy Math
169 Majority Element Java Python Golang Easy Array
170 Two Sum III - Data structure design* Java Python Golang Medium Binary Search
171 Excel Sheet Column Number Java Python Golang Easy Math
172 Factorial Trailing Zeroes Java Python Golang Easy Math
173 Binary Search Tree Iterator Java Python Golang Medium Tree/ Stack
174 Dungeon Game Java Python Golang Hard DP
179 Largest Number Java Python Golang Medium Sorting
186 Reverse Words in a String II* Java Python Golang Easy String
187 Repeated DNA Sequences Java Python Golang Medium Hash Table
188 Best Time to Buy and Sell Stock IV Java Python Golang Hard DP
189 Rotate Array Java Python Golang Easy Array
190 Reverse Bits Java Python Golang Easy Bit Manipulation
191 Number of 1 Bits Java Python Golang Easy Bit Manipulation
198 House Robber Java Python Golang Easy DP
199 Binary Tree Right Side View Java Python Golang Medium Tree/ DFS
200 Number of Islands Java Python Golang Medium DFS/ BFS/ Union Find
201 Range Bit Wise And Java Python Golang Medium Bit Manipulation
202 Happy Number Java Python Golang Easy Hash Table
203 Remove Linked List Elements Java Python Golang Easy Linked List
204 Count Primes Java Python Golang Easy Hash Table
205 Isomorphic Strings Java Python Golang Easy Hash Table
206 Reverse List Java Python Golang Easy Linked List
207 Course Schedule Java Python Golang Medium DFS/ BFS/ Graph
208 Implement Trie(Prefix Tree) Java Python Golang Medium Trie
209 Minimum Size Subarray Sum Java Python Golang Medium Two Pointers
210 Course Schedule II Java Python Golang Medium DFS/ BFS/ Graph
211 Add and Search Word - Data Structure Design Java Python Golang Medium Trie
212 Word Search II Java Python Golang Hard Trie/ Backtracking
213 House Robber II Java Python Golang Medium DP
214 Shortest Palindrome Java Python Golang Hard KMP
215 Kth Largest Element in an Array Java Python Golang Medium Heap
216 Combination Sum III Java Python Golang Medium Backtracking
217 Contains Duplicates Java Python Golang Easy Hash Table
218 The Skyline Problem Java Python Golang Hard Heap/ Binary Indexed Tree/ Segment Tree
219 Contains Duplicates II Java Python Golang Easy Hash Table
220 Contains Duplicates III Java Python Golang Medium Binary Search Tree
221 Maximum Square Java Python Golang Medium DP
222 Count Complete Tree Nodes Java Python Golang Medium Binary Search
223 Rectangle Area Java Python Golang Medium Math
225 Implement Stack Using Queue Java Python Golang Easy Stack
226 Invert Binary Tree Java Python Golang Easy Tree
228 Summary Ranges Java Python Golang Medium Array
229 Majority Element II Java Python Golang Medium Array
230 Kth Smallest Element in a BST Java Python Golang Medium Tree/ Binary Search
231 Power of Two Java Python Golang Easy Bit Manipulation
232 Implement Queue Using Stack Java Python Golang Easy Stack
233 Number of Digit One Java Python Golang Hard Math
234 Palindrome Linked List Java Python Golang Easy Linked List
235 Lowest Common Ancestor BST Java Python Golang Easy Tree
236 Lowest Common Ancestor BT Java Python Golang Medium Tree
237 Delete Node in a Linked List Java Python Golang Easy Linked List
238 Product of Array Except Self Java Python Golang Medium Array
239 Sliding Window Maximum Java Python Golang Hard Heap
240 Search a 2D Matrix II Java Python Golang Medium Binary Search
241 Different Ways to Add Parentheses Java Python Golang Medium Divide and Conquer
242 Valid Anagram Java Python Golang Easy Hash Table
243 Shortest Word Distance* Java Python Golang Easy Array
244 Shortest Word Distance II* Java Python Golang Medium Array
245 Shortest Word Distance III* Java Python Golang Medium Array
246 Strobogrammatic Number* Java Python Golang Easy Hash Table
247 Strobogrammatic Number II* Java Python Golang Easy Hash Table
248 Strobogrammatic Number III* Java Python Golang Medium Hash Table
249 Group Shifted Strings* Java Python Golang Medium Hash Table
250 Count Univalue Subtrees* Java Python Golang Medium Tree/ DFS
251 Flatten 2D Vector* Java Python Golang Easy Array
252 Meeting Rooms* Java Python Golang Easy Sorting
253 Meeting Rooms II* Java Python Golang Medium Heap
254 Factor Combinations* Java Python Golang Medium DFS
255 Verify Preorder Sequence in Binary Search Tree* Java Python Golang Hard Tree/ DFS
256 Paint House* Java Python Golang Medium DP
257 Binary Tree Paths Java Python Golang Easy Tree/ DFS
258 Add Digits Java Python Golang Easy Math
259 3Sum Smaller* Java Python Golang Medium Array/ Two Pointers
260 Single Number III Java Python Golang Medium Bit Manipulation
261 Graph Valid Tree* Java Python Golang Medium Union Find
263 Ugly Number Java Python Golang Easy Math
264 Ugly Number II Java Python Golang Medium Math
265 Paint House II* Java Python Golang Hard DP
266 Palindrome Permutation* Java Python Golang Easy Hash Table
267 Palindrome Permutation II Java Python Golang Medium Hash Table/ Backtracking
268 Missing Number Java Python Golang Easy Bit Manipulation
269 Alien Dictionary* Java Python Golang Hard Graph/ DFS
270 Closest Binary Search Tree Value* Java Python Golang Easy Tree/ DFS
271 Encode and Decode Strings* Java Python Golang Medium String
272 Closest Binary Search Tree Value II* Java Python Golang Hard Tree/ DFS
273 Integer to English Words Java Python Golang Hard String
274 H-Index Java Python Golang Medium Sorting
275 H-Index II Java Python Golang Medium Binary Search
276 Paint Fence* Java Python Golang Easy DP
277 Find the Celebrity* Java Python Golang Medium Array
278 First Bad Version Java Python Golang Easy Binary Search
279 Perfect Squares Java Python Golang Medium BFS/ DP
280 Wiggle Sort* Java Python Golang Medium Array
281 Zigzag Iterator* Java Python Golang Medium Array
282 Expression Add Operators Java Python Golang Hard DFS
283 Move Zeroes Java Python Golang Easy Array/ Two Pointers
284 Peeking Iterator Java Python Golang Medium Design
285 Inorder Successor in BST* Java Python Golang Medium Tree/ DFS
286 Walls and Gates* Java Python Golang Medium DFS
287 Find the Duplicate Number Java Python Golang Medium Binary Search/ Two Pointers
288 Unique Word Abbreviation* Java Python Golang Easy Hash Table
289 Game Of Life Java Python Golang Medium Array
290 Word Pattern Java Python Golang Easy Hash Table
291 Word Pattern II* Java Python Golang Hard Hash Table/ Backtracking
292 Nim Game Java Python Golang Easy Brainteaser
293 Flip Game* Java Python Golang Easy String
294 Flip Game II* Java Python Golang Medium Backtracking
295 Find Median from Data Stream Java Python Golang Hard Heap
296 Best Meeting Point* Java Python Golang Medium Array
297 Serialize and Deserialize Binary Tree Java Python Golang Hard Tree
298 Binary Tree Longest Consecutive Sequence* Java Python Golang Medium Tree/ DFS
299 Bulls and Cows Java Python Golang Medium Hash Table
300 Longest Increasing Subsequence Java Python Golang Medium DP/ Binary Search
301 Remove Invalid Parentheses Java Python Golang Hard DFS
302 Smallest Rectangle Enclosing Black Pixels* Java Python Golang Hard DFS
303 Range Sum Query - Immutable Java Python Golang Easy DP
304 Range Sum Query 2D - Immutable Java Python Golang Medium DP
305 Number of Islands II* Java Python Golang Hard Union Find
306 Additive Number Java Python Golang Medium Backtracking
307 Range Sum Query - Mutable Java Python Golang Medium Binary Indexed Tree/ Segment Tree
308 Range Sum Query 2D - Mutable* Java Python Golang Medium Binary Indexed Tree/ Segment Tree
309 Best Time to Buy and Sell Stock with Cooldown Java Python Golang Medium DP
310 Minimum Height Trees Java Python Golang Medium BFS/ Graph
311 Sparse Matrix Multiplication* Java Python Golang Medium Array
312 Burst Balloons Java Python Golang Hard DP
313 Super Ugly Number Java Python Golang Medium Heap/ DP
314 Binary Tree Vertical Order Traversal* Java Python Golang Medium BFS
315 Count of Smaller Numbers After Self Java Python Golang Hard Binary Search
316 Remove Duplicate Letters Java Python Golang Hard Hash Table
317 Shortest Distance from All Buildings* Java Python Golang Hard BFS
318 Maximum Product of Word Lengths Java Python Golang Medium Bit Manipulation
319 Bulb Switcher Java Python Golang Medium Brainteaser
320 Generalized Abbreviation* Java Python Golang Medium Bit Manipulation

Solutions for problemsets in Database on LeetCode

# Title MySQL Difficulty
175 Combine Two Tables MySQL Golang
176 Second Highest Salary MySQL Golang
177 Nth Highest Salary MySQL Golang
178 Rank Scores MySQL Golang
180 Consecutive Numbers MySQL Golang
181 Employees Earning More Than Their Managers MySQL Golang
182 Duplicate Emails MySQL Golang
183 Customers Who Never Order MySQL Golang
184 Department Highest Salary MySQL Golang
185 Department Top Three Salary MySQL Golang