1 |
Two Sum |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
2 |
Add Two Numbers |
LinkedList |
O(n) |
O(1) |
Medium |
|
|
3 |
Longest Substring Without Repeating Characters |
Hash Table; Two Pointer |
O(n) |
O(1) |
Medium |
Y |
|
4 |
Median of Two Sorted Arrays |
Divide and Conquer |
O(log(m + n)) |
O(1) |
Hard |
Y |
special to [] |
5 |
Longest Palindromic Substring |
String |
O(n^2) |
O(1) |
Medium |
|
|
6 |
ZigZag Conversion |
String |
O(n) |
O(1) |
Medium |
|
pattern |
7 |
Reverse Integer |
Math |
O(n) |
O(1) |
Easy |
|
use long for Overflow |
8 |
String to Integer (atoi) |
String |
O(n) |
O(1) |
Medium |
|
long long |
9 |
Palindrome Number |
Math | Math |
O(x) (O(1)) |
O(1) |
Easy |
|
compare half, overflow |
10 |
Regular Expression Matching |
Recursion | DP |
O(e?) |
O(1) |
Hard |
Y |
DP |
11 |
Container With Most Water |
Two Pointers |
O(n) |
O(1) |
Medium |
Y |
|
12 |
Integer to Roman |
Solution |
O(n) |
O(1) |
Medium |
|
|
13 |
Roman to Integer |
Solution |
O(n) |
O(1) |
Easy |
|
|
14 |
Longest Common Prefix |
String |
O(n*k) |
O(1) |
Easy |
|
|
15 |
3Sum |
Two Pointers |
O(n^2) |
O(1) |
Medium |
Y |
use set; or skip duplicates |
16 |
3Sum Closest |
Two Pointers |
O(n^2) |
O(1) |
Medium |
|
|
17 |
Letter Combinations of a Phone Number |
BFS | DFS |
O(4^n) |
O(n) |
Medium |
Y |
|
18 |
4Sum |
Two Pointers |
O(n^3) |
O(1) |
Medium |
|
use set; or skip duplicates |
19 |
Remove Nth Node From End of List |
Two Pointers |
O(n) |
O(1) |
Medium |
Y |
delete head, tail cases |
20 |
Valid Parentheses |
Stack |
O(n) |
O(n) |
Easy |
|
|
21 |
Merge Two Sorted Lists |
LinkedList |
O(n) |
O(1) |
Easy |
|
|
22 |
Generate Parentheses |
DFS |
? |
O(1) |
Medium |
Y |
|
23 |
Merge k Sorted Lists |
Heap |
O(n*k) |
O(k) |
Hard |
Y |
|
24 |
Swap Nodes in Pairs |
LinkedList | Recursion |
O(n) |
O(1) |
Medium |
|
|
25 |
Reverse Nodes in k-Group |
Recursion |
O(n) |
O(1) |
Hard |
|
|
26 |
Remove Duplicates from Sorted Array |
Two Pointer |
O(n) |
O(1) |
Easy |
|
|
27 |
Remove Element |
Two Pointer |
O(n) |
O(1) |
Easy |
|
rare |
28 |
Implement strStr() |
Two Pointer |
O(n*k) |
O(1) |
Easy |
|
check KMP? |
29 |
Divide Two Integers |
Bit Manipulation |
O(logn) |
O(1) |
Medium |
Y |
|
30 |
Substring with Concatenation of All Words |
Hash Table |
O(n) |
O(n) |
Hard |
|
|
31 |
Next Permutation |
Binary Search |
O(n) |
O(1) |
Medium |
Y |
Binary Search |
32 |
Longest Valid Parentheses |
Stack |
O(n) |
O(n) |
Hard |
|
|
33 |
Search in Rotated Sorted Array |
Binary Search |
O(logn) |
O(1) |
Medium |
Y |
<= |
34 |
Search for a Range |
Binary Search |
O(logn) |
O(1) |
Medium |
|
|
35 |
Search Insert Position |
Binary Search |
O(logn) |
O(1) |
Easy |
|
|
36 |
Valid Sudoku |
Hash Table |
O(9^2) |
O(1) |
Medium |
|
|
37 |
Sudoku Solver |
BackTracking |
O(O((9!)^9)) |
O(1) |
Hard |
|
|
38 |
Count and Say |
Solution |
O(n) |
O(1) |
Easy |
|
|
39 |
Combination Sum |
DFS |
O(2^n) |
O(1) |
Medium |
|
|
40 |
Combination Sum II |
DFS |
O(2^n) |
O(1) |
Medium |
Y |
prev |
41 |
First Missing Positive |
Array |
O(n) |
O(1) |
Hard |
Y |
|
42 |
Trapping Rain Water |
Two Pointers |
O(n) |
O(1) |
Hard |
|
|
43 |
Multiply Strings |
String |
O(m*n) |
O(1) |
Medium |
Y |
|
44 |
Wildcard Matching |
Greedy |
O(n) |
O(1) |
Hard |
Y |
|
45 |
Jump Game II |
Two Pointer |
O(n) |
O(1) |
Hard |
Y |
|
46 |
Permutations |
DFS |
O(n*n!) |
O(n) |
Medium |
|
|
47 |
Permutations II |
DFS |Hash Table |
O(n*n!) |
O(n) |
Medium |
Y |
|
48 |
Rotate Image |
In Place |
O(n^2) |
O(1) |
Medium |
|
|
49 |
Group Anagrams |
Hash Table |
O(m*n) |
O(1) |
Medium |
|
|
50 |
Pow(x, n) |
Divide and Conquer |
O(logn) |
O(1) |
Medium |
Y |
|
51 |
N-Queens |
BackTracking |
O(exp) |
O(n) |
Hard |
Y |
|
52 |
N-Queens II |
Back Tracking |
O(exp) |
O(n) |
Hard |
|
|
53 |
Maximum Subarray |
DP | Greedy |
O(n) |
O(1) |
Easy |
Y |
|
54 |
Spiral Matrix |
In Place |
O(n^2) |
O(1) |
Medium |
|
|
55 |
Jump Game |
Greedy |
O(n) |
O(1) |
Medium |
|
|
56 |
Merge Intervals |
Sort |
O(nlogn) |
O(1) |
Medium |
|
|
57 |
Insert Interval |
Array |
O(n) |
O(1) |
Hard |
Y |
|
58 |
Length of Last Word |
String |
O(n) |
O(1) |
Easy |
|
|
59 |
Spiral Matrix II |
In Place |
O(n^2) |
O(1) |
Medium |
|
|
60 |
Permutation Sequence |
Recursive | Iterative |
O(n) |
O(1) |
Medium |
Y |
|
61 |
Rotate List |
Two Pointers |
O(n) |
O(1) |
Medium |
|
|
62 |
Unique Paths |
DP |
O(m*n) |
O(m*n) |
Medium |
|
can make space O(n) |
63 |
Unique Paths II |
DP |
O(m*n) |
O(m*n) |
Medium |
|
|
64 |
Minimum Path Sum |
DP |
O(m*n) |
O(m*n) |
Medium |
|
|
65 |
Valid Number |
String |
O(n) |
O(1) |
Hard |
Y |
|
66 |
Plus One |
Math |
O(n) |
O(1) |
Easy |
|
|
67 |
Add Binary |
Math |
O(n) |
O(1) |
Easy |
|
|
68 |
Text Justification |
String |
O(n) |
O(1) |
Hard |
Y |
|
69 |
Sqrt(x) |
Binary Search |
O(logn) |
O(1) |
Easy |
Y |
|
70 |
Climbing Stairs |
DP |
O(n) |
O(n); O(1) |
Easy |
|
Fib |
71 |
Simplify Path |
Stack |
O(n) |
O(n) |
Medium |
|
Stringstream |
72 |
Edit Distance |
DP |
O(n) |
O(1) |
Hard |
Y |
|
73 |
Set Matrix Zeroes |
Math |
O(n^2) |
O(1) |
Medium |
|
|
74 |
Search a 2D Matrix |
Binary Search |
O(logn) |
O(1) |
Medium |
|
|
75 |
Sort Colors |
Two Pointers |
O(n) |
O(1) |
Medium |
Y |
|
76 |
Minimum Window Substring |
Two Pointers |
O(n) |
O(1) |
Hard |
Y |
|
77 |
Combinations |
Back Tracking |
O(n!) |
O(n) |
Medium |
|
|
78 |
Subsets |
Back Tracking |
O(2^n) |
O(1) |
Medium |
|
|
79 |
Word Search |
DFS |
O(m*n) |
O(1) |
Medium |
Y |
|
80 |
Remove Duplicates from Sorted Array II |
Two Pointers |
O(n) |
O(1) |
Medium |
|
|
81 |
Search in Rotated Sorted Array II |
Binary Search |
O(logn) |
O(1) |
Medium |
Y |
worst case O(n) |
82 |
Remove Duplicates from Sorted List II |
LinkedList |
O(n) |
O(1) |
Medium |
Y |
|
83 |
Remove Duplicates from Sorted List |
LinkedList |
O(n) |
O(1) |
Easy |
|
|
84 |
Largest Rectangle in Histogram |
Stack |
O(n) |
O(n) |
Hard |
Y |
|
85 |
Maximal Rectangle |
Stack |
O(m*n) |
O(n) |
Hard |
|
|
86 |
Partition List |
LinkedList |
O(n) |
O(1) |
Medium |
|
|
87 |
Scramble String |
Hash Table, DFS |
O(exp) |
O(m*n) |
Hard |
Y |
|
88 |
Merge Sorted Array |
Two Pointers |
O(n) |
O(1) |
Easy |
|
|
89 |
Gray Code |
Math |
O(n) |
O(1) |
Medium |
|
|
90 |
Subsets II |
DFS1 | DFS2 |
O(2^n) |
O(1) |
Medium |
Y |
sort first |
91 |
Decode Ways |
DP |
O(n) |
O(n) |
Medium |
Y |
reduce space |
92 |
Reverse Linked List II |
LinkedList |
O(n) |
O(1) |
Medium |
|
|
93 |
Restore IP Addresses |
DFS |
O(2^n) |
O(1) |
Medium |
|
|
94 |
Binary Tree Inorder Traversal |
Stack |
O(n) |
O(n) |
Medium |
Y |
|
95 |
Unique Binary Search Trees II |
DFS |
O(2^n) |
O(n) |
Medium |
Y |
|
96 |
Unique Binary Search Trees |
DP | Recursion |
O(n) |
O(n) |
Medium |
Y |
|
97 |
Interleaving String |
DP |
O(n^2) |
O(n^2) |
Hard |
|
|
98 |
Validate Binary Search Tree |
Inorder | Recursion |
O(n) |
O(1) |
Medium |
Y |
|
99 |
Recover Binary Search Tree |
Recursion |
O(n) |
O(1) |
Hard |
|
|
100 |
Same Tree |
Recursion |
O(n) |
O(1) |
Easy |
|
|
101 |
Symmetric Tree |
Recusion |
O(n) |
O(1) |
Easy |
|
|
102 |
Binary Tree Level Order Traversal |
BFS | DFS |
O(n) |
O(n) |
Medium |
Y |
|
103 |
Binary Tree Zigzag Level Order Traversal |
Stacks |
O(n) |
O(n) |
Medium |
|
|
104 |
Maximum Depth of Binary Tree |
Recursion |
O(n) |
O(1) |
Easy |
|
|
105 |
Construct Binary Tree from Preorder and Inorder Traversal |
Recursion |
O(n) |
O(1) |
Medium |
|
|
106 |
Construct Binary Tree from Inorder and Postorder Traversal |
Recusion |
O(n) |
O(n) |
Medium |
|
|
107 |
Binary Tree Level Order Traversal II |
BFS | DFS |
O(n) |
O(n) |
Easy |
Y |
|
108 |
Convert Sorted Array to Binary Search Tree |
Divide and Conquer |
O(logn) |
O(1) |
Easy |
|
|
109 |
Convert Sorted List to Binary Search Tree |
Divide and Conquer |
O(logn) |
O(1) |
Medium |
Y |
|
110 |
Balanced Binary Tree |
Recursion |
O(n) |
O(h) |
Easy |
|
|
111 |
Minimum Depth of Binary Tree |
Recusion |
O(n) |
O(1) |
Easy |
|
null? |
112 |
Path Sum |
Recusion |
O(n) |
O(1) |
Easy |
Y |
|
113 |
Path Sum II |
Recusion |
O(n) |
O(1) |
Medium |
|
|
114 |
Flatten Binary Tree to Linked List |
Recusion |
O(n) |
O(1) |
Medium |
Y |
|
115 |
Distinct Subsequences |
DP |
O(m*n) |
O(m*n) |
Hard |
Y |
|
116 |
Populating Next Right Pointers in Each Node |
Recusion |
O(n) |
O(1) |
Medium |
|
|
117 |
Populating Next Right Pointers in Each Node II |
Recusion |
O(n) |
O(1) |
Medium |
Y |
|
118 |
Pascal's Triangle |
Math |
O(n^2) |
O(1) |
Easy |
|
|
119 |
Pascal's Triangle II |
Math |
O(n^2) |
O(1) |
Easy |
Y |
|
120 |
Triangle |
DP |
O(n) |
O(n) |
Medium |
Y |
|
121 |
Best Time to Buy and Sell Stock |
Math |
O(n) |
O(1) |
Easy |
|
|
122 |
Best Time to Buy and Sell Stock II |
Greedy |
O(n) |
O(1) |
Easy |
|
|
123 |
Best Time to Buy and Sell Stock III |
DP | DP |
O(n) |
O(n) |
Hard |
Y |
|
124 |
Binary Tree Maximum Path Sum |
Recusion |
O(n) |
O(n) |
Hard |
Y |
|
125 |
Valid Palindrome |
String |
O(n) |
O(1) |
Easy |
|
|
126 |
Word Ladder II |
BFS |
O(exp) |
O(n) |
Hard |
Y |
|
127 |
Word Ladder |
BFS |
O(n) |
O(n) |
Medium |
Y |
|
128 |
Longest Consecutive Sequence |
Hash Table |
O(n) |
O(n) |
Hard |
Y |
|
129 |
Sum Root to Leaf Numbers |
DFS |
O(n) |
O(n) |
Medium |
|
|
130 |
Surrounded Regions |
DFS |
O(m*n) |
O(1) |
Medium |
Y |
|
131 |
Palindrome Partitioning |
DFS |
O(n^2) |
O(n) |
Medium |
|
|
132 |
Palindrome Partitioning II |
DP |
O(n^2) |
O(n^2) |
|
|
|
133 |
Clone Graph |
BFS, Hash Table |
O(n) |
O(n) |
Medium |
Y |
|
134 |
Gas Station |
Greedy |
O(n) |
O(n) |
Hard |
|
|
135 |
Candy |
Greedy |
O(n) |
O(n) |
Hard |
|
|
136 |
Single Number |
Bit Manipulation |
O(n) |
O(1) |
Easy |
|
|
137 |
Single Number II |
Bit Manipulation |
O(n) |
O(1) |
Medium |
|
|
138 |
Copy List with Random Pointer |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
139 |
Word Break |
DP |
O(n) |
O(n) |
Medium |
Y |
|
140 |
Word Break II |
DP |
O(2^n) |
O(n) |
Hard |
Y |
|
141 |
Linked List Cycle |
Two Pointers |
O(n) |
O(1) |
Easy |
|
|
142 |
Linked List Cycle II |
Two Pointers |
O(n) |
O(1) |
Medium |
|
|
143 |
Reorder List |
Two Pointers |
O(n) |
O(1) |
Medium |
|
|
144 |
Binary Tree Preorder Traversal |
Stack |
O(n) |
O(n) |
Medium |
|
|
145 |
Binary Tree Postorder Traversal |
Stack |
O(n) |
O(n) |
Hard |
Y |
|
146 |
LRU Cache |
List, Hash Table |
O(1) |
O(n) |
Hard |
Y |
|
147 |
Insertion Sort List |
Sort |
O(n^2) |
O(1) |
Medium |
|
|
148 |
Sort List |
Merge Sort |
O(nlogn) |
O(1) |
Medium |
|
|
149 |
Max Points on a Line |
Hash Table |
O(n^2) |
O(n) |
Hard |
Y |
gcd |
150 |
Evaluate Reverse Polish Notation |
Stack |
O(n) |
O(n) |
Medium |
|
|
151 |
Reverse Words in a String |
String |
O(n) |
O(n) |
Medium |
|
|
152 |
Maximum Product Subarray |
DP |
O(n) |
O(1) |
Medium |
Y |
|
153 |
Find Minimum in Rotated Sorted Array |
Binary Search |
O(logn) |
O(1) |
Medium |
Y |
|
154 |
Find Minimum in Rotated Sorted Array II |
Binary Search |
O(n) |
O(1) |
Hard |
Y |
|
155 |
Min Stack |
Stack |
O(n) |
O(1) |
Easy |
|
|
156 |
Binary Tree Upside Down |
Iterative | Recursive |
O(n) |
O(1) |
Medium |
|
|
157 |
Read N Characters Given Read4 |
String |
O(n) |
O(1) |
Easy |
|
|
158 |
Read N Characters Given Read4 II - Call multiple times |
String |
O(n) |
O(1) |
Hard |
Y |
|
159 |
Longest Substring with At Most Two Distinct Characters |
Hash Table |
O(n) |
O(1) |
Hard |
|
|
160 |
Intersection of Two Linked Lists |
Two Pointers |
O(n) |
O(1) |
Easy |
|
|
161 |
One Edit Distance |
String |
O(n) |
O(1) |
Medium |
|
|
162 |
Find Peak Element |
Binary Search |
O(logn) |
O(1) |
Medium |
Y |
|
163 |
Missing Ranges |
Array |
O(n) |
O(1) |
Medium |
|
|
164 |
Maximum Gap |
Bucket Sort |
O(n) |
O(n) |
Hard |
Y |
|
165 |
Compare Version Numbers |
String |
O(n) |
O(1) |
Medium |
|
replace |
166 |
Fraction to Recurring Decimal |
Hash Table |
O(n) |
O(1) |
Medium |
|
|
167 |
Two Sum II - Input array is sorted |
Two Pointer |
O(n) |
O(1) |
Easy |
|
|
168 |
Excel Sheet Column Title |
Math |
O(logn) |
O(1) |
Easy |
|
|
169 |
Majority Element |
Math |
O(n) |
O(1) |
Easy |
|
|
170 |
Two Sum III - Data structure design |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
171 |
Excel Sheet Column Number |
Math |
O(n) |
O(1) |
Easy |
|
|
172 |
Factorial Trailing Zeroes |
Math |
O(logn) |
O(1) |
Easy |
|
|
173 |
Binary Search Tree Iterator |
Stack |
O(n) |
O(n) |
Medium |
Y |
|
174 |
Dungeon Game |
DP |
O(m*n) |
O(m*n) |
Hard |
|
|
179 |
Largest Number |
Sort |
O(nlogn) |
O(1) |
Medium |
|
comparator |
186 |
Reverse Words in a String II |
String |
O(n) |
O(1) |
Medium |
|
|
187 |
Repeated DNA Sequences |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
188 |
Best Time to Buy and Sell Stock IV |
DP |
O(n) |
O(n) |
Hard |
Y |
|
189 |
Rotate Array |
String |
O(n) |
O(1) |
Easy |
|
|
190 |
Reverse Bits |
Bit Manipulation |
O(1) |
O(1) |
Easy |
|
|
191 |
Number of 1 Bits |
Bit Manipulation |
O(1) |
O(1) |
Easy |
|
|
198 |
House Robber |
DP |
O(n) |
O(n) |
Easy |
|
|
199 |
Binary Tree Right Side View |
Recursion |
O(n) |
O(1) |
Medium |
|
|
200 |
Number of Islands |
DFS | BFS |
O(n) |
O(n) |
Medium |
Y |
visited |
201 |
Bitwise AND of Numbers Range |
Bit Manipulation |
O(1) |
O(1) |
Medium |
|
|
202 |
Happy Number |
Math |
O(n) |
O(1) |
Easy |
|
|
203 |
Remove Linked List Elements |
Linked List |
O(n) |
O(1) |
Easy |
|
|
204 |
Count Primes |
Math |
O(n) |
O(n) |
Easy |
Y |
|
205 |
Isomorphic Strings |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
206 |
Reverse Linked List |
Linked List |
O(n) |
O(1) |
Easy |
|
|
207 |
Course Schedule |
Topological Sort |
O(n) |
O(n) |
Medium |
|
|
208 |
Implement Trie (Prefix Tree) |
Trie |
O(1) |
O(1) |
Medium |
Y |
|
209 |
Minimum Size Subarray Sum |
Two Pointers |
O(n) |
O(1) |
Medium |
|
|
210 |
Course Schedule II |
Topological Sort |
O(n) |
O(n) |
Medium |
Y |
|
211 |
Add and Search Word - Data structure design |
Trie + BT |
O(n) |
O(n) |
Medium |
|
|
212 |
Word Search II |
DFS |
O(n!) |
O(1) |
Hard |
Y |
! |
213 |
House Robber II |
DP |
O(n) |
O(n) |
Medium |
|
|
214 |
Shortest Palindrome |
String |
O(n) |
O(1) |
Hard |
|
|
215 |
Kth Largest Element in an Array |
Quick Select |
O(n) |
O(1) |
Medium |
Y |
|
216 |
Combination Sum III |
Recursion |
O(n!) |
O(n) |
Medium |
Y |
|
217 |
Contains Duplicate |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
218 |
The Skyline Problem |
Heap |
O(nlogn) |
O(n) |
Hard |
Y |
|
219 |
Contains Duplicate II |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
220 |
Contains Duplicate III |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
221 |
Maximal Square |
DP |
O(n^2) |
O(n^2) |
Medium |
|
|
222 |
Count Complete Tree Nodes |
Recursion |
O(n) |
O(1) |
Medium |
Y |
|
223 |
Rectangle Area |
Math |
O(1) |
O(1) |
Medium |
|
|
224 |
Basic Calculator |
Stack |
O(n) |
O(1) |
Hard |
Y |
|
225 |
Implement Stack using Queues |
Queue |
O(n) |
O(n) |
Easy |
|
|
226 |
Invert Binary Tree |
Tree |
O(n) |
O(1) |
Easy |
|
|
227 |
Basic Calculator II |
Stack |
O(n) |
O(1) |
Medium |
|
|
228 |
Summary Ranges |
Array |
O(n) |
O(n) |
Medium |
|
|
229 |
Majority Element II |
Math |
O(n) |
O(1) |
Medium |
|
|
230 |
Kth Smallest Element in a BST |
Tree |
O(n) |
O(1) |
Medium |
|
|
231 |
Power of Two |
Bit Manipulation |
O(1) |
O(1) |
Easy |
|
|
232 |
Implement Queue using Stacks |
Stack |
O(1) |
O(1) |
Easy |
|
|
233 |
Number of Digit One |
Recursion |
O(n) |
O(1) |
Hard |
|
|
234 |
Palindrome Linked List |
Linked List |
O(n) |
O(1) |
Easy |
|
|
235 |
Lowest Common Ancestor of a Binary Search Tree |
Tree |
O(n) |
O(1) |
Easy |
|
|
236 |
Lowest Common Ancestor of a Binary Tree |
Tree |
O(n) |
O(1) |
Medium |
Y |
|
237 |
Delete Node in a Linked List |
Linked List |
O(1) |
O(1) |
Easy |
|
|
238 |
Product of Array Except Self |
DP |
O(n) |
O(n) |
Medium |
|
|
239 |
Sliding Window Maximum |
Queue |
O(n) |
O(n) |
Hard |
Y |
|
240 |
Search a 2D Matrix II |
Search |
O(n) |
O(1) |
Medium |
|
|
241 |
Different Ways to Add Parentheses |
Recursion |
O(n^2) |
O(1) |
Medium |
Y |
|
242 |
Valid Anagram |
Hash Table |
O(n) |
O(1) |
Medium |
|
|
243 |
Shortest Word Distance |
Two Pointers |
O(n) |
O(1) |
Medium |
|
|
244 |
Shortest Word Distance II |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
245 |
Shortest Word Distance III |
Array |
O(n) |
O(1) |
Medium |
|
|
246 |
Strobogrammatic Number |
Hash Table |
O(n) |
O(1) |
Easy |
|
|
247 |
Strobogrammatic Number II |
Recursion |
O(n!) |
O(1) |
Medium |
Y |
|
248 |
Strobogrammatic Number III |
Recursion |
O(n!) |
O(1) |
Hard |
|
|
249 |
Group Shifted Strings |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
250 |
Count Univalue Subtrees |
Recursion |
O(n) |
O(1) |
Medium |
|
|
251 |
Flatten 2D Vector |
Math |
O(1) |
O(1) |
Medium |
|
|
252 |
Meeting Rooms |
Sort |
O(nlogn) |
O(1) |
Easy |
|
|
253 |
Meeting Rooms II |
Greedy + Sort |
O(nlogn) |
O(n) |
Medium |
Y |
|
254 |
Factor Combinations |
BackTracking |
O(n!) |
O(1) |
Medium |
Y |
|
255 |
Verify Preorder Sequence in Binary Search Tree |
Stack |
O(n!) |
O(n) |
Medium |
|
|
256 |
Paint House |
DP |
O(n) |
O(n) |
Easy |
|
|
257 |
Binary Tree Paths |
BackTracking |
O(n) |
O(1) |
Easy |
|
|
258 |
Add Digits |
Math |
O(1) |
O(1) |
Easy |
|
|
259 |
3Sum Smaller |
Sort |
O(nlogn) |
O(1) |
Medium |
|
|
260 |
Single Number III |
Bit Manipulation |
O(n) |
O(1) |
Medium |
|
|
261 |
Graph Valid Tree |
DFS |
O(n) |
O(n) |
Medium |
Y |
find cycle |
263 |
Ugly Number |
Math |
O(1) |
O(1) |
Easy |
|
|
264 |
Ugly Number II |
Math |
O(n) |
O(1) |
Medium |
|
|
265 |
Paint House II |
DP |
O(n) |
O(n) |
Hard |
|
|
266 |
Palindrome Permutation |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
267 |
Palindrome Permutation II |
Back Tracking |
O(n!) |
O(1) |
Medium |
Y |
|
268 |
Missing Number |
Math |
O(n) |
O(1) |
Easy |
|
|
269 |
Alien Dictionary |
Topological Sort |
O(n) |
O(n) |
Hard |
Y |
|
270 |
Closest Binary Search Tree Value |
Tree |
O(n) |
O(n) |
Easy |
|
|
271 |
Encode and Decode Strings |
String |
O(n) |
O(1) |
Medium |
|
|
272 |
Closest Binary Search Tree Value II |
Tree |
O(n) |
O(1) |
Hard |
|
|
273 |
Integer to English Words |
String |
O(n) |
O(1) |
Hard |
|
|
274 |
H-Index |
Sort |
O(nlogn) |
O(1) |
Medium |
|
|
275 |
H-Index II |
Binary Search |
O(logn) |
O(1) |
Medium |
|
|
276 |
Paint Fence |
DP |
O(n) |
O(1) |
Easy |
|
|
277 |
Find the Celebrity |
Array |
O(n) |
O(1) |
Medium |
|
|
278 |
First Bad Version |
Binary Search |
O(logn) |
O(1) |
Easy |
Y |
|
279 |
Perfect Squares |
DP |
O(n) |
O(n) |
Medium |
|
|
280 |
Wiggle Sort |
Sort |
O(n) |
O(1) |
Medium |
|
|
281 |
Zigzag Iterator |
Array |
O(1) |
O(1) |
Medium |
|
|
282 |
Expression Add Operators |
Divide n Conquer |
O(n!) |
O(1) |
Hard |
|
|
283 |
Move Zeroes |
Two Pointers |
O(n) |
O(1) |
Easy |
|
|
284 |
Peeking Iterator |
Design1 |Design2 |
O(1) |
O(1) |
Medium |
|
|
285 |
Inorder Successor in BST |
Tree |
O(n) |
O(1) |
Easy |
Y |
|
286 |
Walls and Gates |
BFS |
O(n) |
O(n) |
Medium |
Y |
|
287 |
Find the Duplicate Number |
Binary Search |
O(logn) |
O(1) |
Medium |
|
|
288 |
Unique Word Abbreviation |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
289 |
Game of Life |
DFS |
O(n!) |
O(1) |
Medium |
|
|
290 |
Word Pattern |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
291 |
Word Pattern II |
BackTracking |
O(n!) |
O(n) |
Hard |
Y |
|
292 |
Nim Game |
Math |
O(1) |
O(1) |
Easy |
|
|
293 |
Flip Game |
String |
O(n) |
O(1) |
Easy |
|
|
294 |
Flip Game II |
BackTracking |
O(n!) |
O(n) |
Medium |
|
|
295 |
Find Median from Data Stream |
Heap |
O(1) |
O(n) |
Hard |
Y |
|
296 |
Best Meeting Point |
Sort |
O(nlogn) |
O(1) |
Hard |
|
|
297 |
Serialize and Deserialize Binary Tree |
BackTracking |
O(n) |
O(1) |
Hard |
Y |
n-ary |
298 |
Binary Tree Longest Consecutive Sequence |
BackTracking |
O(n) |
O(1) |
Medium |
|
|
299 |
Bulls and Cows |
Hash Table |
O(n) |
O(1) |
Medium |
|
|
300 |
Longest Increasing Subsequence |
DP |
O(n) |
O(n) |
Medium |
|
|
301 |
Remove Invalid Parentheses |
BFS |
O(n) |
O(n) |
Hard |
|
Y |
302 |
Smallest Rectangle Enclosing Black Pixels |
Binary Search |
O(logn) |
O(1) |
Hard |
Y |
|
303 |
Range Sum Query - Immutable |
DP |
O(n) |
O(n) |
Easy |
|
|
304 |
Range Sum Query 2D - Immutable |
DP |
O(m*n) |
O(m*n) |
Medium |
|
|
305 |
Number of Islands II |
Union Find |
O(n) |
O(m*n) |
Hard |
Y |
|
306 |
Additive Number |
BackTracking |
O(n!) |
O(1) |
Medium |
|
|
307 |
Range Sum Query - Mutable |
BIT |Segment Tree |
O(n) |
O(n) |
Medium |
Y |
|
308 |
Range Sum Query 2D - Mutable |
BIT |Segment Tree |
O(m*n) |
O(m*n) |
Hard |
|
|
309 |
Best Time to Buy and Sell Stock with Cooldown |
DP |
O(n) |
O(n) |
Medium |
Y |
|
310 |
Minimum Height Trees |
Topological Sort |
O(n) |
O(n) |
Medium |
|
|
311 |
Sparse Matrix Multiplication |
Hash Table |
O(m*n) |
O(m*n) |
Medium |
Y |
|
312 |
Burst Balloons |
DP |
O(n^2) |
O(n^2) |
Hard |
|
|
313 |
Super Ugly Number |
Math |
O(n) |
O(m*n) |
Medium |
Y |
|
314 |
Binary Tree Vertical Order Traversal |
BFS |
O(n) |
O(n) |
Medium |
Y |
|
315 |
Count of Smaller Numbers After Self |
Binary Search |
O(nlogn) |
O(n) |
Hard |
|
|
316 |
Remove Duplicate Letters |
Greedy |
O(n) |
O(1) |
Hard |
|
|
317 |
Shortest Distance from All Buildings |
BFS |
O(n) |
O(n) |
Hard |
|
|
318 |
Maximum Product of Word Lengths |
Bit Manipulation |
O(m*n) |
O(n) |
Medium |
|
|
319 |
Bulb Switcher |
Math |
O(1) |
O(1) |
Medium |
|
|
320 |
Generalized Abbreviation |
BackTracking |
O(2^n) |
O(1) |
Medium |
Y |
|
321 |
Create Maximum Number |
Greedy |
O(n!) |
O(1) |
Hard |
|
|
322 |
Coin Change |
DP |
O(n) |
O(n) |
Medium |
|
|
323 |
Number of Connected Components in an Undirected Graph |
Union Find |
O(n) |
O(n) |
Medium |
Y |
|
324 |
Wiggle Sort II |
Sort |
O(nlog) |
O(n) |
Medium |
|
|
325 |
Maximum Size Subarray Sum Equals k |
Hash Table |
O(n) |
O(n) |
Medium |
Y |
|
326 |
Power of Three |
Math |
O(1) |
O(1) |
Easy |
Y |
|
327 |
Count of Range Sum |
Hash Table |
O(n) |
O(n) |
Hard |
|
|
328 |
Odd Even Linked List |
Linked List |
O(n) |
O(1) |
Medium |
|
|
329 |
Longest Increasing Path in a Matrix |
DFS |
O(n!) |
O(n^2) |
Hard |
|
|
330 |
Patching Array |
Greedy |
O(n) |
O(1) |
Hard |
|
|
331 |
Verify Preorder Serialization of a Binary Tree |
Sort |
O(n) |
O(1) |
Medium |
|
|
332 |
Reconstruct Itinerary |
DFS |
O(n!) |
O(n) |
Medium |
Y |
|
333 |
Largest BST Subtree |
DFS |
O(n) |
O(1) |
Medium |
|
|
334 |
Increasing Triplet Subsequence |
Array |
O(n) |
O(1) |
Medium |
|
|
335 |
Self Crossing |
Math |
O(n) |
O(1) |
Hard |
|
|
336 |
Palindrome Pairs |
Hash Table |
O(m*n) |
O(m) |
Hard |
|
|
337 |
House Robber III |
DFS |
O(n) |
O(1) |
Medium |
|
|
338 |
Counting Bits |
Bit Manipulation |
O(n) |
O(1) |
Medium |
|
|
339 |
Nested List Weight Sum |
DFS |
O(2^n) |
O(1) |
Easy |
|
|
340 |
Longest Substring with At Most K Distinct Characters |
Hash Table |
O(n) |
O(256) |
Hard |
|
|
341 |
Flatten Nested List Iterator |
Stack |
O(n) |
O(n) |
Medium |
Y |
|
342 |
Power of Four |
Math |
O(1) |
O(1) |
Easy |
|
|
343 |
Integer Break |
Math |
O(1) |
O(1) |
Medium |
|
|
344 |
Reverse String |
String |
O(n) |
O(1) |
Easy |
|
|
345 |
Reverse Vowels of a String |
String |
O(n) |
O(1) |
Easy |
|
|
346 |
Moving Average from Data Stream |
Queue |
O(1) |
O(n) |
Easy |
|
|
347 |
Top K Frequent Elements |
Heap |
O(n) |
O(n) |
Medium |
|
|
348 |
Design Tic-Tac-Toe |
Design |
O(1) |
O(n) |
Medium |
|
|
349 |
Intersection of Two Arrays |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
350 |
Intersection of Two Arrays II |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
351 |
Android Unlock Patterns |
DFS |
O(n!) |
O(n) |
Medium |
|
|
352 |
Data Stream as Disjoint Intervals |
Array |
O(n) |
O(n) |
Hard |
|
|
353 |
Design Snake Game |
Queue |
O(n) |
O(n) |
Medium |
|
|
354 |
Russian Doll Envelopes |
DP |
O(n) |
O(n) |
Hard |
|
|
355 |
Design Twitter |
Hash Table + Heap |
O(m*n) |
O(n) |
Medium |
Y |
|
356 |
Line Reflection |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
357 |
Count Numbers with Unique Digits |
Math |
O(n) |
O(1) |
Medium |
|
|
358 |
Rearrange String k Distance Apart |
Greedy |
O(n!) |
O(n) |
Hard |
|
|
359 |
Logger Rate Limiter |
Hash Table |
O(1) |
O(n) |
Easy |
Y |
|
360 |
Sort Transformed Array |
Two Pointers |
O(n) |
O(1) |
Medium |
|
|
361 |
Bomb Enemy |
DP |
O(m*n) |
O(m*n) |
Medium |
|
|
362 |
Design Hit Counter |
Queue | Circular Array |
O(n) |
O(n) |
Medium |
Y |
|
363 |
Max Sum of Rectangle No Larger Than K |
Hash Table |
O(col*col*row) |
O(row) |
Hard |
|
|
364 |
Nested List Weight Sum II |
DFS |
O(2^n) |
O(1) |
Medium |
|
|
365 |
Water and Jug Problem |
Math |
O(n) |
O(1) |
Medium |
|
gcd |
366 |
Find Leaves of Binary Tree |
Tree |
O(n) |
O(1) |
Medium |
|
|
367 |
Valid Perfect Square |
Binary Search |
O(logn) |
O(1) |
Easy |
|
|
368 |
Largest Divisible Subset |
DP |
O(ologn) |
O(n) |
Medium |
|
|
369 |
Plus One Linked List |
Recursion |
O(n) |
O(n) |
Medium |
Y |
|
370 |
Range Addition |
Array |
O(n) |
O(1) |
Medium |
|
|
371 |
Sum of Two Integers |
Bit Manipulation |
O(1) |
O(1) |
Easy |
|
|
372 |
Super Pow |
Math |
O(m*n) |
O(1) |
Medium |
|
|
373 |
Find K Pairs with Smallest Sums |
Heap |
O(m*n) |
O(m*n) |
Medium |
|
|
374 |
Guess Number Higher or Lower |
Binary Search |
O(logn) |
O(1) |
Easy |
|
|
375 |
Guess Number Higher or Lower II |
DP |
O(n^3) |
O(n^2) |
Medium |
|
|
376 |
Wiggle Subsequence |
Greedy |
O(n) |
O(1) |
Medium |
|
|
377 |
Combination Sum IV |
DP |
O(n) |
O(n) |
Medium |
|
|
378 |
Kth Smallest Element in a Sorted Matrix |
Heap |
O(n) |
O(n) |
Medium |
|
Y |
379 |
Design Phone Directory |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
380 |
Insert Delete GetRandom O(1) |
Hash Table |
O(1) |
O(n) |
Medium |
Y |
|
381 |
Insert Delete GetRandom O(1) - Duplicates allowed |
Hash Table |
O(1) |
O(n) |
Hard |
|
|
382 |
Linked List Random Node |
Math |
O(n) |
O(1) |
Medium |
Y |
蓄水池采样 |
383 |
Ransom Note |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
384 |
Shuffle an Array |
Math |
O(n) |
O(1) |
Medium |
|
|
385 |
Mini Parser |
Stack |
O(n) |
O(n) |
Medium |
|
Y |
386 |
Lexicographical Numbers |
String |
O(n) |
O(1) |
Medium |
|
|
387 |
First Unique Character in a String |
Hash Table |
O(n) |
O(256) |
Easy |
|
|
388 |
Longest Absolute File Path |
String |
O(n) |
O(n) |
Medium |
|
|
389 |
Find the Difference |
Bit Manipulation |
O(n) |
O(1) |
Easy |
|
|
390 |
Elimination Game |
Math |
O(n) |
O(1) |
Medium |
|
|
391 |
Perfect Rectangle |
Math |
O(n) |
O(n) |
Hard |
|
|
392 |
Is Subsequence |
Greedy |
O(n) |
O(n) |
Medium |
|
|
393 |
UTF-8 Validation |
Bit Manipulation |
O(n) |
O(1) |
Medium |
|
|
394 |
Decode String |
Stack |
O(n) |
O(n) |
Medium |
Y |
|
395 |
Longest Substring with At Least K Repeating Characters |
BackTracking |
O(2^n) |
O(1) |
Medium |
|
|
396 |
Rotate Function |
Math |
O(n) |
O(1) |
Medium |
|
|
397 |
Integer Replacement |
Backtracking |
O(2^n) |
O(1) |
Medium |
|
|
398 |
Random Pick Index |
Math |
O(n) |
O(1) |
Medium |
|
|
399 |
Evaluate Division |
DFS |
O(n!) |
O(1) |
Medium |
|
Y |
400 |
Nth Digit |
Math |
O(n) |
O(1) |
Easy |
|
|
401 |
Binary Watch |
Bit Manipulation |
O(720) |
O(1) |
Easy |
|
|
402 |
Remove K Digits |
Greedy |
O(n) |
O(n) |
Medium |
|
|
403 |
Frog Jump |
DP |
O(n) |
O(n) |
Hard |
|
|
404 |
Sum of Left Leaves |
Backtracking |
O(n) |
O(1) |
Easy |
|
|
405 |
Convert a Number to Hexadecimal |
Bit Manipulation |
O(n) |
O(1) |
Easy |
|
|
406 |
Queue Reconstruction by Height |
Sort |
O(nlogn) |
O(1) |
Medium |
|
|
407 |
Trapping Rain Water II |
BFS |
O(n) |
O(n) |
Hard |
|
|
408 |
Valid Word Abbreviation |
String |
O(n) |
O(1) |
Easy |
|
|
409 |
Longest Palindrome |
Hash Table |
O(n) |
O(256) |
Easy |
|
|
410 |
Split Array Largest Sum |
Binary Search |
O(logn) |
O(1) |
Hard |
|
|
411 |
Minimum Unique Word Abbreviation |
Backtracking |
O(2^n) |
O(1) |
Hard |
|
|
412 |
Fizz Buzz |
Array |
O(n) |
O(1) |
Easy |
|
|
413 |
Arithmetic Slices |
DP |
O(n) |
O(n) |
Medium |
|
|
414 |
Third Maximum Number |
Array |
O(n) |
O(1) |
Easy |
|
|
415 |
Add Strings |
Math |
O(n) |
O(n) |
Easy |
|
|
416 |
Partition Equal Subset Sum |
DP |
O(n) |
O(n) |
Medium |
|
|
417 |
Pacific Atlantic Water Flow |
DFS |
O(2^n) |
O(m*n) |
Medium |
|
|
418 |
Sentence Screen Fitting |
Hash Table |
O(n) |
O(n) |
Medium |
|
|
419 |
Battleships in a Board |
Math |
O(m*n) |
O(1) |
Medium |
|
|
420 |
Strong Password Checker |
Hash Table |
O(n) |
O(1) |
Hard |
|
|
421 |
Maximum XOR of Two Numbers in an Array |
Bit Manipulation + Trie |
O(n) |
O(n) |
Medium |
|
|
422 |
Valid Word Square |
String |
O(n*k) |
O(1) |
Easy |
|
|
423 |
Reconstruct Original Digits from English |
Math |
O(n) |
O(n) |
Medium |
|
|
424 |
Longest Repeating Character Replacement |
String |
O(n) |
O(n) |
Medium |
|
|
425 |
Word Squares |
Backtracking + Trie |
O(n!) |
O(n) |
Hard |
Y |
|
432 |
All O one Data Structure |
Hash Table |
O(1) |
O(n) |
Hard |
Y |
|
434 |
Number of Segments in a String |
String |
O(n) |
O(1) |
Easy |
|
|
435 |
Non-overlapping Intervals |
Greedy |
O(nlogn) |
O(1) |
Medium |
|
|
436 |
Find Right Interval |
Binary Search |
O(nlogn) |
O(n) |
Medium |
|
|
437 |
Path Sum III |
Backtracking |
O(n) |
O(1) |
Easy |
|
|
438 |
Find All Anagrams in a String |
Hash Table |
O(n) |
O(26) |
Easy |
|
|
439 |
Ternary Expression Parser |
Stack |
O(n) |
O(n) |
Medium |
|
|
440 |
K-th Smallest in Lexicographical Order |
Tree |
O(logn*k) |
O(n) |
Hard |
|
|
441 |
Arranging Coins |
Binary Search |
O(logn) |
O(1) |
Easy |
Y |
|
442 |
Find All Duplicates in an Array |
Array |
O(n) |
O(1) |
Medium |
|
|
444 |
Sequence Reconstruction |
Hash Table |
O(m*n) |
O(n) |
Medium |
|
|
445 |
Add Two Numbers II |
Stack |
O(n) |
O(n) |
Medium |
|
|
446 |
Arithmetic Slices II - Subsequence |
DP |
O(n) |
O(n) |
Hard |
|
|
447 |
Number of Boomerangs |
Hash Table |
O(n^2) |
O(n) |
Easy |
|
|
448 |
Find All Numbers Disappeared in an Array |
Array |
O(n) |
O(1) |
Easy |
|
|
449 |
Serialize and Deserialize BST |
Tree |
O(n) |
O(n) |
Hard |
|
|
450 |
Delete Node in a BST |
Tree |
O(n) |
O(1) |
Medium |
|
|
451 |
Sort Characters By Frequency |
Heap |
O(n) |
O(n) |
Medium |
|
|
452 |
Minimum Number of Arrows to Burst Balloons |
Sort |
O(nlogn) |
O(1) |
Medium |
|
|
453 |
Minimum Moves to Equal Array Elements |
Array |
O(n) |
O(1) |
Easy |
|
|
454 |
4Sum II |
Math |
O(n^2) |
O(n) |
Medium |
|
|
455 |
Assign Cookies |
Greedy |
O(nlogn) |
O(n) |
Easy |
|
|
456 |
132 Pattern |
Array |
O(n^2) |
O(n) |
Medium |
|
|
459 |
Repeated Substring Pattern |
String |
O(n^2) |
O(1) |
Easy |
|
|
460 |
LFU Cache |
Design |
O(n) |
O(n) |
Hard |
|
|
461 |
Hamming Distance |
Bit Manipulation |
O(n) |
O(1) |
Easy |
|
|
462 |
Minimum Moves to Equal Array Elements II |
Sort |
O(nlogn) |
O(1) |
Medium |
|
|
463 |
Island Perimeter |
Math |
O(m*n) |
O(1) |
Easy |
|
|
464 |
Can I Win |
BackTracking |
O(n!) |
O(n) |
Medium |
|
|
465 |
Optimal Account Balancing |
BackTracking |
O(n!) |
O(n) |
Hard |
Y |
|
466 |
Count The Repetitions |
DP |
O(n) |
O(n) |
Hard |
|
|
467 |
Unique Substrings in Wraparound String |
DP |
O(n) |
O(n) |
Medium |
|
|
468 |
Validate IP Address |
String |
O(n) |
O(1) |
Medium |
|
|
469 |
Convex Polygon |
Math |
O(n) |
O(1) |
Medium |
|
|
471 |
Encode String with Shortest Length |
DP |
O(n^2) |
O(1) |
Hard |
|
|
472 |
Concatenated Words |
DP |
O(m*n) |
O(n) |
Hard |
|
|
473 |
Matchsticks to Square |
BackTracking |
O(n!) |
O(1) |
Medium |
|
|
474 |
Ones and Zeroes |
DP |
O(m*n) |
O(m*n) |
Medium |
|
|
475 |
Heaters |
Binary Search |
O(nlogn) |
O(1) |
Easy |
|
|
476 |
Number Complement |
Bit Manipulation |
O(n) |
O(1) |
Easy |
|
|
477 |
Total Hamming Distance |
Bit Manipulation |
O(n) |
O(1) |
Medium |
|
|
480 |
Sliding Window Median |
Heap |
O(1) |
O(n) |
Hard |
Y |
multiset |
481 |
Magical String |
Math |
O(n) |
O(n) |
Medium |
|
|
482 |
License Key Formatting |
String |
O(n) |
O(1) |
Medium |
|
|
483 |
Smallest Good Base |
Binary Search |
O(logn) |
O(1) |
Hard |
|
|
484 |
Find Permutation |
Greedy |
O(n) |
O(n) |
Medium |
|
|
485 |
Max Consecutive Ones |
Array |
O(n) |
O(1) |
Easy |
|
|
486 |
Predict the Winner |
Backtracking |
O(2^n) |
O(1) |
Medium |
|
|
487 |
Max Consecutive Ones II |
Array |
O(n) |
O(1) |
Medium |
Y |
sliding window |
490 |
The Maze |
DFS | BFS |
O(n) |
O(n) |
Medium |
Y |
|
491 |
Increasing Subsequences |
Backtracking |
O(n!) |
O(1) |
Medium |
|
|
492 |
Construct the Rectangle |
Math |
O(n^0.5) |
O(1) |
Easy |
|
|
494 |
Target Sum |
Backtracking |
O(2^n) |
O(1) |
Medium |
|
|
495 |
Teemo Attacking |
Array |
O(n) |
O(1) |
Medium |
|
|
496 |
Next Greater Element I |
Hash Table |
O(n) |
O(n) |
Easy |
|
|
498 |
Diagonal Traverse |
Solution |
O(m*n) |
O(1) |
Medium |
|
|
499 |
The Maze III |
DFS |
O(n!) |
O(m*n) |
Hard |
|
|
500 |
Keyboard Row |
Hash Table |
O(n) |
O(1) |
Easy |
|
|