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.)
#
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
#
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
#
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
#
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
#
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
#
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
#
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
#
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
#
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
#
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
#
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
♥
#
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
#
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
#
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
#
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
♥
#
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
♥
#
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
♥
#
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
#
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
#
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
Company wise interview questions
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