kinshuk4 / leetcode-solutions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Currently there are 368 Algorithms / 13 Database / 4 Shell questions on LeetCode Online Judge. The number of questions is increasing recently. Here is the classification of all 385 questions. For more questions and solutions, you can see my LintCode repository. I'll keep updating for full summary and better solutions. Stay tuned for updates.

Note: "♥" means you need to subscribe to LeetCode premium membership for the access to premium questions.)

Algorithms

Companies

Database

Shell

Bit Manipulation

# Title Solution Time Space Difficulty Tag Note
136 Single Number C++, Java, Python O(n) O(1) Medium
137 Single Number II C++, Java, Python O(n) O(1) Medium
190 Reverse Bits C++, Java, Python O(1) O(1) Easy
191 Number of 1 Bits C++, Java, Python O(1) O(1) Easy
201 Bitwise AND of Numbers Range C++, Java, Python O(1) O(1) Medium
231 Power of Two C++, Java, Python O(1) O(1) Easy LintCode
260 Single Number III C++, Java, Python O(n) O(1) Medium
268 Missing Number C++, Java, Python O(n) O(1) Medium LintCode
318 Maximum Product of Word Lengths C++, Java, Python O(n) ~ O(n^2) O(n) Medium Bit Manipulation, Counting Sort, Pruning
342 Power of Four C++, Java, Python O(1) O(1) Easy
371 Sum of Two Integers C++, Java, Python O(1) O(1) Easy LintCode

Array

# Title Solution Time Space Difficulty Tag Note
15 3 Sum C++, Java, Python O(n^2) O(1) Medium Two Pointers
16 3 Sum Closest C++, Java, Python O(n^2) O(1) Medium Two Pointers
18 4 Sum C++, Java, Python O(n^3) O(1) Medium Two Pointers
26 Remove Duplicates from Sorted Array C++, Java, Python O(n) O(1) Easy Two Pointers
27 Remove Element C++, Java, Python O(n) O(1) Easy
31 Next Permutation C++, Java, Python O(n) O(1) Medium Tricky
41 First Missing Positive C++, Java, Python O(n) O(1) Hard Tricky
48 Rotate Image C++, Java, Python O(n^2) O(1) Medium
54 Spiral Matrix C++, Java, Python O(m * n) O(1) Medium
59 Spiral Matrix II C++, Java, Python O(n^2) O(1) Medium
66 Plus One C++, Java, Python O(n) O(1) Easy
73 Set Matrix Zeroes C++, Java, Python O(m * n) O(1) Medium
80 Remove Duplicates from Sorted Array II C++, Java, Python O(n) O(1) Medium Two Pointers
118 Pascal's Triangle C++, Java, Python O(n^2) O(1) Easy
119 Pascal's Triangle II C++, Java, Python O(n^2) O(1) Easy
121 Best Time to Buy and Sell Stock C++, Java, Python O(n) O(1) Medium
128 Longest Consecutive Sequence C++, Java, Python O(n) O(n) Hard Tricky
157 Read N Characters Given Read4 C++, Java, Python O(n) O(1) Easy
158 Read N Characters Given Read4 II - Call multiple times C++, Java, Python O(n) O(1) Hard
163 Missing Ranges C++, Java, Python O(n) O(1) Medium
169 Majority Element C++, Java, Python O(n) O(1) Easy
189 Rotate Array C++, Java, Python O(n) O(1) Easy
209 Minimum Size Subarray Sum [C++] (./C++/minimum-size-subarray-sum.cpp), [Python] (./Python/minimum-size-subarray-sum.py) O(n) O(1) Medium Binary Search
215 Kth Largest Element in an Array [C++] (./C++/kth-largest-element-in-an-array.cpp), [Python] (./Python/kth-largest-element-in-an-array.py) O(n) ~ O(n^2) O(1) Medium EPI
228 Summary Ranges [C++] (./C++/summary-ranges.cpp), [Python] (./Python/summary-ranges.py) O(n) O(1) Easy
229 Majority Element II C++, Java, Python O(n) O(1) Medium
238 Product of Array Except Self C++, Java, Python O(n) O(1) Medium LintCode
240 Search a 2D Matrix II C++, Java, Python O(m + n) O(1) Medium EPI, LintCode
243 Shortest Word Distance C++, Java, Python O(n) O(1) Easy
245 Shortest Word Distance III C++, Java, Python O(n) O(1) Medium
251 Flatten 2D Vector C++, Java, Python O(1) O(1) Medium
277 Find the Celebrity C++, Java, Python O(n) O(1) Medium ♥, EPI
289 Game of Life C++, Java, Python O(m * n) O(1) Medium
293 Flip Game C++, Java, Python O(n * (c+1)) O(1) Easy
296 Best Meeting Point C++, Java, Python O(m * n) O(m + n) Medium
311 Sparse Matrix Multiplication C++, Java, Python O(m * n * l) O(m * l) Medium
334 Increasing Triplet Subsequence C++, Java, Python O(n) O(1) Medium
370 Range Addition C++, Java, Python O(k + n) O(1) Medium
384 Shuffle an Array C++, Java, Python O(n) O(n) Medium EPI

String

# Title Solution Time Space Difficulty Tag Note
5 Longest Palindromic Substring C++, Java, Python O(n) O(n) Medium Manacher's Algorithm
6 ZigZag Conversion C++, Java, Python O(n) O(1) Easy
8 String to Integer (atoi) C++, Java, Python O(n) O(1) Easy
14 Longest Common Prefix C++, Java, Python O(n * k) O(1) Easy
28 Implement strStr() C++, Java, Python O(n + k) O(k) Easy KMP Algorithm
38 Count and Say C++, Java, Python O(n * 2^n) O(2^n) Easy
43 Multiply Strings C++, Java, Python O(m * n) O(m + n) Medium
58 Length of Last Word C++, Java, Python O(n) O(1) Easy
67 Add Binary C++, Java, Python O(n) O(1) Easy
68 Text Justification C++, Java, Python O(n) O(1) Hard
125 Valid Palindrome C++, Java, Python O(n) O(1) Easy
151 Reverse Words in a String C++, Java, Python O(n) O(1) Medium
161 One Edit Distance C++, Java, Python O(m + n) O(1) Medium
165 Compare Version Numbers C++, Java, Python O(n) O(1) Easy
186 Reverse Words in a String II C++, Java, Python O(n) O(1) Medium
214 Shortest Palindrome C++, Java, Python O(n) O(n) Hard KMP Algorithm Manacher's Algorithm
242 Valid Anagram C++, Java, Python O(n) O(1) Easy LintCode
271 Encode and Decode Strings C++, Java, Python O(n) O(1) Medium
273 Integer to English Words C++, Java, Python O(logn) O(1) Medium
306 Addictive Number C++, Java, Python O(n^3) O(n) Medium
383 Ransom Note C++, Java, Python O(n) O(1) Easy EPI

Linked List

# Title Solution Time Space Difficulty Tag Note
2 Add Two Numbers C++, Java, Python O(n) O(1) Medium
21 Merge Two Sorted Lists C++, Java, Python O(n) O(1) Easy
23 Merge k Sorted Lists C++, Java, Python O(nlogk) O(1) Hard Heap, Divide and Conquer
24 Swap Nodes in Pairs C++, Java, Python O(n) O(1) Medium
25 Reverse Nodes in k-Group C++, Java, Python O(n) O(1) Hard
61 Rotate List C++, Java, Python O(n) O(1) Medium
82 Remove Duplicates from Sorted List II C++, Java, Python O(n) O(1) Medium
83 Remove Duplicates from Sorted List C++, Java, Python O(n) O(1) Easy
92 Reverse Linked List II C++, Java, Python O(n) O(1) Medium
138 Copy List with Random Pointer C++, Java, Python O(n) O(1) Hard
160 Intersection of Two Linked Lists C++, Java, Python O(m + n) O(1) Easy
203 Remove Linked List Elements C++, Java, Python O(n) O(1) Easy
206 Reverse Linked List C++, Java, Python O(n) O(1) Easy
234 Palindrome Linked List C++, Java, Python O(n) O(1) Easy
237 Delete Node in a Linked List C++, Java, Python O(1) O(1) Easy LintCode
328 Odd Even Linked List C++, Java, Python O(n) O(1) Easy
369 Plus One Linked List C++, Java, Python O(n) O(1) Medium Two Pointers

Stack

# Title Solution Time Space Difficulty Tag Note
20 Valid Parentheses C++, Java, Python O(n) O(n) Easy
32 Longest Valid Parentheses C++, Java, Python O(n) O(1) Hard
71 Simplify Path C++, Java, Python O(n) O(n) Medium
84 Largest Rectangle in Histogram C++, Java, Python O(n) O(n) Hard Ascending Stack, DP
85 Maximal Rectangle C++, Java, Python O(m * n) O(n) Hard EPI Ascending Stack
101 Symmetric Tree C++, Java, Python O(n) O(h) Easy
150 Evaluate Reverse Polish Notation C++, Java, Python O(n) O(n) Medium
155 Min Stack C++, Java, Python O(n) O(1) Easy
173 Binary Search Tree Iterator C++, Java, Python O(1) O(h) Medium
224 Basic Calculator C++, Java, Python O(n) O(n) Medium
227 Basic Calculator II C++, Java, Python O(n) O(n) Medium
232 Implement Queue using Stacks C++, Java, Python O(1), amortized O(n) Easy EPI, LintCode
255 Verify Preorder Sequence in Binary Search Tree C++, Java, Python O(n) O(1) Medium
272 Closest Binary Search Tree Value II C++, Java, Python O(h + k) O(h) Hard
331 Verify Preorder Serialization of a Binary Tree C++, Java, Python O(n) O(1) Medium
341 Flatten Nested List Iterator C++, Java, Python O(n) O(h) Medium Iterator
385 Mini Parser C++, Java, Python O(n) O(h) Medium

Queue

# Title Solution Time Space Difficulty Tag Note
239 Sliding Window Maximum C++, Java, Python O(n) O(k) Hard EPI, LintCode
281 Zigzag Iterator C++, Java, Python O(n) O(k) Medium
346 Moving Average from Data Stream C++, Java, Python O(1) O(w) Easy

Heap

# Title Solution Time Space Difficulty Tag Note
264 Ugly Number II C++, Java, Python O(n) O(1) Medium CTCI, LintCode BST, Heap
295 Find Median from Data Stream C++, Java, Python O(nlogn) O(n) Hard EPI, LintCode BST, Heap
313 Super Ugly Number C++, Java, Python O(n * k) O(n + k) Medium BST, Heap
358 Rearrange String k Distance Apart C++, Java, Python O(n) O(n) Hard Greedy, Heap
373 Find K Pairs with Smallest Sums C++, Java, Python O(k * log(min(n, m, k))) O(min(n, m, k)) Medium
378 Kth Smallest Element in a Sorted Matrix C++, Java, Python O(k * log(min(n, m, k))) O(min(n, m, k)) Medium LintCode

Tree

# Title Solution Time Space Difficulty Tag Note
94 Binary Tree Inorder Traversal C++, Java, Python O(n) O(1) Medium Morris Traversal
99 Recover Binary Search Tree C++, Java, Python O(n) O(1) Hard Morris Traversal
144 Binary Tree Preorder Traversal C++, Java, Python O(n) O(1) Medium Morris Traversal
145 Binary Tree Postorder Traversal C++, Java, Python O(n) O(1) Hard Morris Traversal
208 Implement Trie (Prefix Tree) C++, Java, Python O(n) O(1) Medium Trie
211 Add and Search Word - Data structure design C++, Java, Python O(min(n, h)) O(min(n, h)) Medium Trie, DFS
226 Invert Binary Tree C++, Java, Python O(n) O(h), O(w) Easy
297 Serialize and Deserialize Binary Tree C++, Java, Python O(n) O(h) Medium LintCode DFS
307 Range Sum Query - Mutable C++, Java, Python ctor: O(n), update: O(logn), query: O(logn) O(n) Medium LintCode DFS, Segment Tree, BIT
308 Range Sum Query 2D - Mutable C++, Java, Python ctor: O(m * n), update: O(logm + logn), query: O(logm + logn) O(m * n) Hard DFS, Segment Tree, BIT
315 Count of Smaller Numbers After Self C++, Java, Python O(nlogn) O(n) Hard LintCode BST, BIT, Divide and Conquer

Hash Table

# Title Solution Time Space Difficulty Tag Note
1 Two Sum C++, Java, Python O(n) O(n) Medium
3 Longest Substring Without Repeating Characters C++, Java, Python O(n) O(1) Medium
30 Substring with Concatenation of All Words C++, Java, Python O(m * n * k) O(n * k) Hard
36 Valid Sudoku C++, Java, Python O(9^2) O(9) Easy
49 Group Anagrams C++, Java, Python O(n * glogg) O(n) Medium
76 Minimum Window Substring C++, Java, Python O(n) O(k) Hard
149 Max Points on a Line C++, Java, Python O(n^2) O(n) Hard
159 Longest Substring with At Most Two Distinct Characters C++, Java, Python O(n) O(1) Hard
170 Two Sum III - Data structure design C++, Java, Python O(n) O(n) Easy
187 Repeated DNA Sequences Java, Python O(n) O(n) Medium
202 Happy Number C++, Java, Python O(k) O(k) Easy
204 Count Primes C++, Java, Python O(n) O(n) Easy
205 Isomorphic Strings C++, Java, Python O(n) O(1) Easy
217 Contains Duplicate C++, Java, Python O(n) O(n) Easy
219 Contains Duplicate II C++, Java, Python O(n) O(n) Easy
244 Shortest Word Distance II C++, Java, Python ctor: O(n), lookup: O(a + b) O(n) Medium
246 Strobogrammatic Number C++, Java, Python O(n) O(1) Easy
249 Group Shifted Strings C++, Java, Python O(nlogn) O(n) Easy
266 Palindrome Permutation C++, Java, Python O(n) O(1) Easy
288 Unique Word Abbreviation C++, Java, Python ctor: O(n), lookup: O(1) O(k) Easy
290 Word Pattern C++, Java, Python O(n) O(c) Easy variant of Isomorphic Strings
299 Bulls and Cow C++, Java, Python O(n) O(1) Easy
305 Number of Islands II C++, Java, Python O(k) O(k) Hard LintCode, ♥ Union Find
314 Binary Tree Vertical Order Traversal C++, Java, Python O(n) O(n) Medium BFS
323 Number of Connected Components in an Undirected Graph C++, Java, Python O(n) O(n) Medium Union Find
325 Maximum Size Subarray Sum Equals k C++, Java, Python O(n) O(n) Easy
336 Palindrome Pairs C++, Java, Python O(n * k^2) O(n * k) Hard
340 Longest Substring with At Most K Distinct Characters C++, Java, Python O(n) O(1) Hard
356 Line Reflection C++, Java, Python O(n) O(n) Medium Hash, Two Pointers

Data Structure

# Title Solution Time Space Difficulty Tag Note
146 LRU Cache C++, Java, Python O(1) O(k) Hard
225 Implement Stack using Queues C++, Java, Python push: O(n), pop: O(1), top: O(1) O(n) Medium

Math

# Title Solution Time Space Difficulty Tag Note
7 Reverse Integer C++, Java, Python O(1) O(1) Easy
9 Palindrome Number C++, Java, Python O(1) O(1) Easy
12 Integer to Roman C++, Java, Python O(n) O(1) Medium
13 Roman to Integer C++, Java, Python O(n) O(1) Easy
29 Divide Two Integers C++, Java, Python O(1) O(1) Medium
50 Pow(x, n) C++, Java, Python O(1) O(1) Medium
60 Permutation Sequence C++, Java, Python O(n^2) O(n) Medium Cantor Ordering
65 Valid Number C++, Java, Python O(n) O(1) Hard Automata
89 Gray Code C++, Java, Python O(2^n) O(1) Medium
166 Fraction to Recurring Decimal C++, Java, Python O(logn) O(1) Medium
168 Excel Sheet Column Title C++, Java, Python O(logn) O(1) Easy
171 Excel Sheet Column Number C++, Java, Python O(n) O(1) Easy
172 Factorial Trailing Zeroes C++, Java, Python O(1) O(1) Easy
223 Rectangle Area C++, Java, Python O(1) O(1) Easy
233 Number of Digit One C++, Java, Python O(1) O(1) Medium CTCI, LintCode
248 Strobogrammatic Number III C++, Java, Python O(5^(n/2)) O(n) Hard
258 Add Digits C++, Java, Python O(1) O(1) Easy
263 Ugly Number C++, Java, Python O(1) O(1) Easy
292 Nim Game C++, Java, Python O(1) O(1) Easy LintCode
319 Bulb Switcher C++, Java, Python O(1) O(1) Medium
326 Power of Three C++, Java, Python O(1) O(1) Easy
335 Self Crossing C++, Java, Python O(n) O(1) Medium
338 Counting Bits C++, Java, Python O(n) O(n) Medium
343 Integer Break C++, Java, Python O(logn) O(1) Medium Tricky, DP
365 Water and Jug Problem C++, Java, Python O(logn) O(1) Medium Euclidean Algorithm
372 Super Pow C++, Java, Python O(n) O(1) Medium
382 Linked List Random Node C++, Java, Python O(n) O(1) Medium Reservoir Sampling

Sort

# Title Solution Time Space Difficulty Tag Note
56 Merge Intervals C++, Java, Python O(nlogn) O(1) Hard
57 Insert Interval C++, Java, Python O(n) O(1) Hard
75 Sort Colors C++, Java, Python O(n) O(1) Medium Tri Partition
88 Merge Sorted Array Java, Python O(n) O(1) Easy
147 Insertion Sort List C++, Java, Python O(n^2) O(1) Medium
148 Sort List C++, Java, Python O(nlogn) O(logn) Medium
164 Maximum Gap Java, Python O(n) O(n) Hard Tricky
179 Largest Number Java, Python O(nlogn) O(1) Medium
218 The Skyline Problem C++, Java, Python O(nlogn) O(n) Hard Sort, BST
252 Meeting Rooms C++, Java, Python O(nlogn) O(n) Easy
253 Meeting Rooms II C++, Java, Python O(nlogn) O(n) Medium
274 H-Index C++, Java, Python O(n) O(n) Medium Counting Sort
280 Wiggle Sort C++, Java, Python O(n) O(1) Medium
324 Wiggle Sort II C++, Java, Python O(n) on average O(1) Medium variant of Sort Colors Tri Partition
347 Top K Frequent Elements C++, Java, Python O(n) on average O(n) Medium Quick Select, Heap

Two Pointers

# Title Solution Time Space Difficulty Tag Note
19 Remove Nth Node From End of List Java, Python O(n) O(1) Easy
86 Partition List C++, Java, Python O(n) O(1) Medium
141 Linked List Cycle C++, Java, Python O(n) O(1) Medium
142 Linked List Cycle II C++, Java, Python O(n) O(1) Medium
143 Reorder List C++, Java, Python O(n) O(1) Medium
167 Two Sum II - Input array is sorted Java, Python O(n) O(1) Medium
259 3Sum Smaller C++, Java, Python O(n^2) O(1) Medium ♥, LintCode
283 Move Zeroes C++, Java, Python O(n) O(1) Easy
287 Find the Duplicate Number C++, Java, Python O(n) O(1) Hard Binary Search, Two Pointers
344 Reverse String C++, Java, Python O(n) O(1) Easy
345 Reverse Vowels of a String C++, Java, Python O(n) O(1) Easy
349 Intersection of Two Arrays C++, Java, Python O(m + n) O(min(m, n)) Easy EPI Hash, Binary Search
350 Intersection of Two Arrays II C++, Java, Python O(m + n) O(1) Easy EPI Hash, Binary Search
360 Sort Transformed Array C++, Java, Python O(n) O(1) Medium

Recursion

# Title Solution Time Space Difficulty Tag Note
95 Unique Binary Search Trees II Java, Python O(4^n / n^(3/2) O(4^n / n^(3/2) Medium
98 Validate Binary Search Tree Java, Python O(n) O(1) Medium
100 Same Tree Java, Python O(n) O(h) Easy
104 Maximum Depth of Binary Tree Java, Python O(n) O(h) Easy
105 Construct Binary Tree from Preorder and Inorder Traversal Java, Python O(n) O(n) Medium
106 Construct Binary Tree from Inorder and Postorder Traversal Java, Python O(n) O(n) Medium
108 Convert Sorted Array to Binary Search Tree Java, Python O(n) O(logn) Medium
109 Convert Sorted List to Binary Search Tree Java, Python O(n) O(logn) Medium
110 Balanced Binary Tree Java, Python O(n) O(h) Easy
111 Minimum Depth of Binary Tree Java, Python O(n) O(h) Easy
114 Flatten Binary Tree to Linked List Java, Python O(n) O(h) Medium
116 Populating Next Right Pointers in Each Node Java, Python O(n) O(1) Medium
124 Binary Tree Maximum Path Sum Java, Python O(n) O(h) Hard
129 Sum Root to Leaf Numbers Java, Python O(n) O(h) Medium
156 Binary Tree Upside Down Java, Python O(n) O(1) Medium
241 Different Ways to Add Parentheses C++, Java, Python O(n * 4^n / n^(3/2)) O(n * 4^n / n^(3/2)) Medium
298 Binary Tree Longest Consecutive Sequence C++, Java, Python O(n) O(h) Medium
327 Count of Range Sum C++, Java, Python O(nlogn) O(n) Hard
333 Largest BST Subtree C++, Java, Python O(n) O(h) Medium
337 House Robber III C++, Java, Python O(n) O(h) Medium

Binary Search

# Title Solution Time Space Difficulty Tag Note
4 Median of Two Sorted Arrays C++, Java, Python O(log(min(m, n))) O(1) Hard
33 Search in Rotated Sorted Array C++, Java, Python O(logn) O(1) Hard
34 Search for a Range Java, Python O(logn) O(1) Medium
35 Search Insert Position Java, Python O(logn) O(1) Medium
69 Sqrt(x) Java, Python O(logn) O(1) Medium
74 Search a 2D Matrix Java, Python O(logm + logn) O(1) Medium
81 Search in Rotated Sorted Array II C++, Java, Python O(logn) O(1) Medium
153 Find Minimum in Rotated Sorted Array C++, Java, Python O(logn) O(1) Medium
154 Find Minimum in Rotated Sorted Array II C++, Java, Python O(logn) ~ O(n) O(1) Hard
162 Find Peak Element C++, Java, Python O(logn) O(1) Medium
222 Count Complete Tree Nodes C++, Java, Python O((logn)^2) O(1) Medium
275 H-Index II C++, Java, Python O(logn) O(1) Medium Binary Search
278 First Bad Version C++, Java, Python O(logn) O(1) Easy LintCode
300 Longest Increasing Subsequence C++, Java, Python O(nlogn) O(n) Medium CTCI, LintCode Binary Search, DP
302 Smallest Rectangle Enclosing Black Pixels C++, Java, Python O(nlogn) O(1) Medium
354 Russian Doll Envelopes C++, Java, Python O(nlogn) O(1) Hard
363 Max Sum of Rectangle No Larger Than K C++, Java, Python O(min(m, n)^2 * max(m, n) * logn(max(m, n))) O(max(m, n)) Hard
367 Valid Perfect Square C++, Java, Python O(logn) O(1) Medium
374 Guess Number Higher or Lower C++, Java, Python O(logn) O(1) Easy

Binary Search Tree

# Title Solution Time Space Difficulty Tag Note
220 Contains Duplicate III C++, Java, Python O(nlogk) O(k) medium
230 Kth Smallest Element in a BST C++, Java, Python O(max(h, k)) O(min(h, k)) Medium
235 Lowest Common Ancestor of a Binary Search Tree C++, Java, Python O(h) O(1) Easy EPI
270 Closest Binary Search Tree Value C++, Java, Python O(h) O(1) Easy
285 Inorder Successor in BST C++, Java, Python O(h) O(1) Medium
352 Data Stream as Disjoint Intervals C++, Java, Python O(logn) O(n) Hard

Breadth-First Search

# Title Solution Time Space Difficulty Tag Note
102 Binary Tree Level Order Traversal Java, Python O(n) O(n) Easy
107 Binary Tree Level Order Traversal II Java, Python O(n) O(n) Easy
103 Binary Tree Zigzag Level Order Traversal Java, Python O(n) O(n) Medium
117 Populating Next Right Pointers in Each Node II Java, Python O(n) O(1) Hard
127 Word Ladder Java, Python O(n * d) O(d) Medium
130 Surrounded Regions C++, Java, Python O(m * n) O(m + n) Medium
133 Clone Graph Java, Python O(n) O(n) Medium
207 Course Schedule Java, Python O(|V| + |E|) O(|E|) Medium Topological Sort
210 Course Schedule II Java, Python O(|V| + |E|) O(|E|) Medium Topological Sort
261 Graph Valid Tree C++, Java, Python O(|V| + |E|) O(|V| + |E|) Medium
269 Alien Dictionary C++, Java, Python O(n) O(1) Hard Topological Sort, BFS, DFS
286 Walls and Gates C++, Java, Python O(m * n) O(g) Medium
310 Minimum Height Trees C++, Java, Python O(n) O(n) Medium
317 Shortest Distance from All Buildings C++, Java, Python O(k * m * n) O(m * n) Hard

Depth-First Search

# Title Solution Time Space Difficulty Tag Note
112 Path Sum Java, Python O(n) O(h) Easy
113 Path Sum II Java, Python O(n) O(h) Medium
199 Binary Tree Right Side View Java, Python O(n) O(h) Medium
200 Number of Islands Java, Python O(m * n) O(m * n) Medium
236 Lowest Common Ancestor of a Binary Tree C++, Java, Python O(n) O(h) Medium EPI
247 Strobogrammatic Number II C++, Java, Python O(n^2 * 5^(n/2)) O(n) Medium
250 Count Univalue Subtrees C++, Java, Python O(n) O(h) Medium
257 Binary Tree Paths C++, Java, Python O(n * h) O(h) Easy
282 Expression Add Operators C++, Java, Python O(4^n) O(n) Hard
301 Remove Invalid Parentheses C++, Java, Python O(C(n, c)) O(c) Medium
329 Longest Increasing Path in a Matrix C++, Java, Python O(m * n) O(m * n) Medium
332 Reconstruct Itinerary C++, Java, Python O(t! / (n1! * n2! * ... nk!)) O(t) Medium
339 Nested List Weight Sum C++, Java, Python O(n) O(h) Easy
364 Nested List Weight Sum II C++, Java, Python O(n) O(h) Medium
366 Find Leaves of Binary Tree C++, Java, Python O(n) O(h) Medium

Backtracking

# Title Solution Time Space Difficulty Tag Note
17 Letter Combinations of a Phone Number Java, Python O(n * 4^n) O(n) Medium
22 Generate Parentheses Java, Python O(4^n / n^(3/2)) O(n) Medium
37 Sudoku Solver Java, Python O((9!)^9) O(1) Hard
39 Combination Sum Java, Python O(k * n^k) O(k) Medium
40 Combination Sum II Java, Python O(k * C(n, k)) O(k) Medium
46 Permutations Java, Python O(n * n!) O(n) Medium
47 Permutations II Java, Python O(n * n!) O(n) Hard
51 N-Queens Java, Python O(n!) O(n) Hard
52 N-Queens-II Java, Python O(n!) O(n) Hard
77 Combinations Java, Python O(n!) O(n) Medium
79 Word Search Java, Python O(m * n * l) O(l) Medium
93 Restore IP Addresses Java, Python O(1) O(1) Medium
78 Subsets C++, Java, Python O(n * 2^n) O(1) Medium
90 Subsets II C++, Java, Python O(n * 2^n) O(1) Medium
126 Word Ladder II Java, Python O(n * d) O(d) Hard
131 Palindrome Partitioning Java, Python O(n^2) ~ O(2^n) O(n^2) Medium
140 Word Break II C++, Java, Python O(n * l^2 + n * r) O(n^2) Hard
212 Word Search II C++, Java, Python O(m * n * l) O(l) Hard LintCode Trie, DFS
216 Combination Sum III C++, Java, Python O(k * C(n, k)) O(k) Medium
254 Factor Combinations C++, Java, Python O(nlogn) O(logn) Medium
267 Palindrome Permutation II C++, Java, Python O(n * n!) O(n) Medium
291 Word Pattern II C++, Java, Python O(n * C(n - 1, c - 1)) O(n + c) Hard
294 Flip Game II C++, Java, Python O(n + c^2) O(c) Medium DP, Hash
320 Generalized Abbreviation C++, Java, Python O(n * 2^n) O(n) Medium

Dynamic Programming

# Title Solution Time Space Difficulty Tag Note
10 Regular Expression Matching Java, Python O(m * n) O(n) Hard
53 Maximum Subarray Java, Python O(n) O(1) Medium
62 Unique Paths Java, Python O(m * n) O(m + n) Medium
63 Unique Paths II Java, Python O(m * n) O(m + n) Medium
64 Minimum Path Sum Java, Python O(m * n) O(m + n) Medium
70 Climbing Stairs Java, Python O(n) O(1) Easy
72 Edit Distance Java, Python O(m * n) O(m + n) Hard
87 Scramble String Java, Python O(n^4) O(n^3) Hard
91 Decode Ways C++, Java, Python O(n) O(1) Medium
96 Unique Binary Search Trees Java, Python O(n) O(1) Medium Math
97 Interleaving String Java, Python O(m * n) O(m + n) Hard
115 Distinct Subsequences Java, Python O(n^2) O(n) Hard
120 Triangle Java, Python O(m * n) O(n) Medium
123 Best Time to Buy and Sell Stock III Java, Python O(n) O(1) Hard
132 Palindrome Partitioning II Java, Python O(n^2) O(n^2) Hard
139 Word Break C++, Java, Python O(n * l^2) O(n) Medium
152 Maximum Product Subarray Java, Python O(n) O(1) Medium
174 Dungeon Game Java, Python O(m * n) O(m + n) Hard
188 Best Time to Buy and Sell Stock IV Java, Python O(k * n) O(k) Hard
198 House Robber Java, Python O(n) O(1) Easy
213 House Robber II C++, Java, Python O(n) O(1) Medium
221 Maximal Square C++, Java, Python O(n^2) O(n) Medium EPI
256 Paint House C++, Java, Python O(n) O(1) Medium
265 Paint House II C++, Java, Python O(n * k) O(k) Hard
276 Paint Fence C++, Java, Python O(n) O(1) Easy
279 Perfect Squares C++, Java, Python O(n * sqrt(n)) O(n) Medium Hash
303 Range Sum Query - Immutable C++, Java, Python ctor: O(n), lookup: O(1) O(n) Easy
304 Range Sum Query 2D - Immutable C++, Java, Python ctor: O(m * n), lookup: O(1) O(m * n) Medium
309 Best Time to Buy and Sell Stock with Cooldown C++, Java, Python O(n) O(1) Medium
312 Burst Balloons C++, Java, Python O(n^3) O(n^2) Medium
322 Coin Change C++, Java, Python O(n * k) O(k) Medium
351 Android Unlock Patterns C++, Java, Python O(9^2 * 2^9) O(9 * 2^9) Medium Backtracking
357 Count Numbers with Unique Digits C++, Java, Python O(n) O(1) Medium Backtracking, Math
361 Bomb Enemy C++, Java, Python O(m * n) O(m * n) Medium
368 Largest Divisible Subset C++, Java, Python O(n^2) O(n) Medium
375 Guess Number Higher or Lower II C++, Java, Python O(n^2) O(n^2) Medium
377 Combination Sum IV C++, Java, Python O(nlogn + n * t) O(t) Medium

Greedy

# Title Solution Time Space Difficulty Tag Note
11 Container With Most Water Java, Python O(n) O(1) Medium
42 Trapping Rain Water Java, Python O(n) O(1) Hard Tricky
44 Wildcard Matching Java, Python O(m + n) O(1) Hard Tricky
45 Jump Game II Java, Python O(n) O(1) Hard
55 Jump Game Java, Python O(n) O(1) Medium
122 Best Time to Buy and Sell Stock II Java, Python O(n) O(1) Medium
134 Gas Station Java, Python O(n) O(1) Medium
135 Candy C++, Java, Python O(n) O(n) Hard
316 Remove Duplicate Letters C++, Java, Python O(n) O(k) Medium Ascending Stack
321 Create Maximum Number C++, Java, Python O(k * (m + n + k)) ~ O(k * (m + n + k^2)) O(m + n + k^2) Hard variant of Delete Digits Greedy, DP
330 Patching Array C++, Java, Python O(s + logn) O(1) Medium
376 Wiggle Subsequence C++, Java, Python O(n) O(1) Medium

Design

# Title Solution Time Space Difficulty Tag Note
284 Peeking Iterator C++, Java, Python O(1) O(1) Medium
348 Design Tic-Tac-Toe C++, Java, Python O(1) O(n^2) Medium
353 Design Snake Game C++, Java, Python O(s) O(s) Medium Deque
355 Design Twitter C++, Java, Python O(klogu) O(t + f) Hard LintCode Heap
359 Logger Rate Limiter C++, Java, Python O(1), amortized O(k) Easy Deque
362 Design Hit Counter C++, Java, Python O(1), amortized O(k) Medium Deque
379 Design Phone Directory C++, Java, Python O(1) O(n) Medium
380 Insert Delete GetRandom O(1) C++, Java, Python O(1) O(n) Medium
381 Insert Delete GetRandom O(1) - Duplicates allowed C++, Java, Python O(1) O(n) Medium

SQL

# Title Solution Time Space Difficulty Tag Note
175 Combine Two Tables MySQL O(m + n) O(m + n) Easy
176 Second Highest Salary MySQL O(n) O(1) Easy
177 Nth Highest Salary MySQL O(n^2) O(n) Medium
178 Rank Scores MySQL O(n^2) O(n) Medium
180 Consecutive Numbers MySQL O(n) O(n) Medium
181 Employees Earning More Than Their Managers MySQL O(n^2) O(1) Easy
182 Duplicate Emails MySQL O(n^2) O(n) Easy
183 Customers Who Never Order MySQL O(n^2) O(1) Easy
184 Department Highest Salary MySQL O(n^2) O(n) Medium
185 Department Top Three Salaries MySQL O(n^2) O(n) Hard
196 Delete Duplicate Emails MySQL O(n^2) O(n) Easy
197 Rising Temperature MySQL O(n^2) O(n) Easy
262 Trips and Users MySQL O((t * u) + tlogt) O(t) Hard

Shell Script

# Title Solution Time Space Difficulty Tag Note
192 Word Frequency Shell O(n) O(k) Medium
193 Valid Phone Numbers Shell O(n) O(1) Easy
194 Transpose File Shell O(n^2) O(n^2) Medium
195 Tenth Line Shell O(n) O(1) Easy

Company wise interview questions

Google

Title Solution Difficulty Frequency
Plus One Swift Easy ★★★★★★
Number of Islands Swift Medium ★★★★
Summary Ranges Swift Medium ★★★★
Perfect Squares Swift Medium ★★★★
Merge Intervals Swift Hard ★★★
Valid Parentheses Swift Easy ★★★
Trapping Rain Water Swift Hard ★★
Merge k Sorted Lists Swift Hard ★★
Longest Consecutive Sequence Swift Hard ★★
Find Peak Element Swift Medium ★★
Power of Two Swift Easy ★★
Spiral Matrix Swift Medium ★★
Sliding Window Maximum Swift Hard ★★
Pow(x, n) Swift Medium ★★
Letter Combinations of a Phone Number Swift Medium ★★
Heaters Swift Easy

Facebook

Title Solution Difficulty Frequency
3Sum Swift Medium ★★★★★★
Valid Palindrome Swift Easy ★★★★★★
Valid Palindrome II Swift Easy ★★★★★★
Move Zeroes Swift Easy ★★★★★★
Remove Invalid Parentheses Swift Hard ★★★★★★
Add Binary Swift Easy ★★★★★
Two Sum Swift Easy ★★★★★
Bnary Tree Paths Swift Easy ★★★★
Letter Combinations of a Phone Number Swift Medium ★★★★
Merge k Sorted Lists Swift Hard ★★★★
Reverse Linked List Swift Easy ★★★
Merge Intervals Swift Hard ★★★
Number of Islands Swift Medium ★★★
Reverse Linked List Swift Easy ★★★
Expression Add Operators Swift Hard ★★★
Subsets Swift Medium ★★★
Sort Colors Swift Medium ★★

Snapchat

Title Solution Difficulty Frequency
Game of Life Swift Medium ★★★★★★
Meeting Rooms II Swift Medium ★★★★★★
Valid Sudoku Swift Easy ★★★★★
Binary Tree Vertical Order Traversal Swift Medium ★★★★
Alien Dictionary Swift Hard ★★★★
One Edit Distance Swift Medium ★★★
Sudoku Solver Swift Hard ★★★
Reverse Linked List Swift Easy ★★
Unique Binary Search Trees Swift Medium ★★
Minimum Window Substring Swift Hard ★★
Remove K Digits Swift Medium
Ternary Expression Parser Swift Medium

Uber

Title Solution Difficulty Frequency
Valid Sudoku Swift Easy ★★★★
Spiral Matrix Swift Medium ★★★★
Letter Combinations of a Phone Number Swift Medium ★★★★
Group Anagrams Swift Medium ★★★★
Word Pattern Swift Easy ★★★
Roman to Integer Swift Easy ★★★
Combination Sum Swift Medium ★★

Airbnb

Title Solution Difficulty Frequency
Two Sum Swift Easy ★★★★★
Text Justification Swift Hard ★★★★
House Robber Swift Easy ★★
Single Number Swift Medium ★★
Word Search II Swift Hard ★★
Add Two Numbers Swift Medium ★★

LinkedIn

Title Solution Difficulty Frequency
Maximum Subarray Swift Medium ★★★★★★
Pow(x, n) Swift Medium ★★★★★★
Merge Intervals Swift Hard ★★★★★★
Isomorphic Strings Swift Easy ★★★★★★
Search in Rotated Sorted Array Swift Hard ★★★★★
Search for a Range Swift Medium ★★★★★
Two Sum Swift Easy ★★★★
Binary Tree Level Order Traversal Swift Easy ★★★★
Evaluate Reverse Polish Notation Swift Medium ★★★
Maximum Product Subarray Swift Medium ★★★
Product of Array Except Self Swift Medium ★★★
Symmetric Tree Swift Easy ★★

Amazon

Title Solution Difficulty Frequency
Two Sum Swift Easy ★★★★★★
Min Cost Climbing Stairs Swift Easy ★★★★
Number of Islands Swift Medium ★★
Add Two Numbers Swift Medium ★★
Reverse Linked List Swift Easy ★★
Valid Parentheses Swift Easy ★★
Longest Palindromic Substring Swift Medium ★★
Trapping Rain Water Swift Hard ★★
Longest Substring Without Repeating Characters Swift Medium ★★
Letter Combinations of a Phone Number Swift Medium ★★
Valid Anagram Swift Easy ★★
Rotate Image Swift Medium ★★
Best Time to Buy and Sell Stock Swift Easy ★★
3Sum Swift Medium ★★
Sliding Window Maximum Swift Hard ★★

Microsoft

Title Solution Difficulty Frequency
Reverse Linked List Swift Easy ★★★★★★
Two Sum Swift Easy ★★★★★
String to Integer (atoi) Swift Easy ★★★★
Add Two Numbers Swift Medium ★★★★
Excel Sheet Column Number Swift Easy ★★★★
Validate Binary Search Tree Swift Medium ★★★
Merge Two Sorted Lists Swift Easy ★★★

Source https://github.com/CodEnFisH/LeetCode-1 https://github.com/kinshuk4/leetcode-solutions https://github.com/soapyigu/LeetCode-Swift https://github.com/grandyang/leetcode https://github.com/qiyuangong/leetcode https://github.com/haoel/leetcode

About

License:MIT License


Languages

Language:Java 68.6%Language:Python 17.2%Language:C++ 14.1%Language:Shell 0.1%Language:Rust 0.1%