The number of LeetCode questions is increasing every week. 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. (Notes: "๐" means you need to subscribe to LeetCode premium membership for the access to premium questions.)
- Bit Manipulation
- Array
- String
- Linked List
- Stack
- Queue
- Heap
- Tree
- Hash Table
- Math
- Two Pointers
- Sort
- Recursion
- Binary Search
- Binary Search Tree
- Breadth-First Search
- Depth-First Search
- Backtracking
- Dynamic Programming
- Greedy
- Design
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
136 | Single Number | C++ Python | O(n) | O(1) | Easy | ||
137 | Single Number II | C++ Python | O(n) | O(1) | Medium | ||
190 | Reverse Bits | C++ Python | O(1) | O(1) | Easy | ||
191 | Number of 1 Bits | C++ Python | O(1) | O(1) | Easy | ||
201 | Bitwise AND of Numbers Range | C++ Python | O(1) | O(1) | Medium | ||
231 | Power of Two | C++ Python | O(1) | O(1) | Easy | LintCode | |
260 | Single Number III | C++ Python | O(n) | O(1) | Medium | ||
268 | Missing Number | C++ Python | O(n) | O(1) | Medium | LintCode | |
318 | Maximum Product of Word Lengths | C++ Python | O(n) ~ O(n^2) | O(n) | Medium | Bit Manipulation, Counting Sort, Pruning | |
342 | Power of Four | C++ Python | O(1) | O(1) | Easy | ||
371 | Sum of Two Integers | C++ Python | O(1) | O(1) | Easy | LintCode | |
389 | Find the Difference | C++ Python | O(n) | O(1) | Easy | ||
393 | UTF-8 Validation | C++ Python | O(n) | O(1) | Medium | ||
401 | Binary Watch | C++ Python | O(1) | O(1) | Easy | ||
411 | Minimum Unique Word Abbreviation | C++ Python | O(2^n) | O(n) | Hard | ๐ | |
421 | Maximum XOR of Two Numbers in an Array | C++ Python | O(n) | O(1) | Medium | ||
461 | Hamming Distance | C++ Python | O(1) | O(1) | Easy | ||
462 | Minimum Moves to Equal Array Elements II | C++ Python | O(n) on average | O(1) | Medium | ||
477 | Total Hamming Distance | C++ Python | O(n) | O(1) | Medium | ||
645 | Set Mismatch | C++ Python | O(n) | O(1) | Easy | ||
693 | Binary Number with Alternating Bits | C++ Python | O(1) | O(1) | Easy |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
239 | Sliding Window Maximum | C++ Python | O(n) | O(k) | Hard | EPI, LintCode | |
281 | Zigzag Iterator | C++ Python | O(n) | O(k) | Medium | ๐ | |
346 | Moving Average from Data Stream | C++ Python | O(1) | O(w) | Easy | ๐ |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
264 | Ugly Number II | C++ Python | O(n) | O(1) | Medium | CTCI, LintCode | BST, Heap |
295 | Find Median from Data Stream | C++ Python | O(nlogn) | O(n) | Hard | EPI, LintCode | BST, Heap |
313 | Super Ugly Number | C++ Python | O(n * k) | O(n + k) | Medium | BST, Heap | |
358 | Rearrange String k Distance Apart | C++ Python | O(n) | O(n) | Hard | ๐ | Greedy, Heap |
373 | Find K Pairs with Smallest Sums | C++ Python | O(k * log(min(n, m, k))) | O(min(n, m, k)) | Medium | ||
378 | Kth Smallest Element in a Sorted Matrix | C++ Python | O(k * log(min(n, m, k))) | O(min(n, m, k)) | Medium | LintCode | |
407 | Trapping Rain Water II | C++ Python | O(m * n * (logm + logn)) | O(m * n) | Hard | LintCode |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
94 | Binary Tree Inorder Traversal | C++ Python | O(n) | O(1) | Medium | Morris Traversal |
|
99 | Recover Binary Search Tree | C++ Python | O(n) | O(1) | Hard | Morris Traversal |
|
144 | Binary Tree Preorder Traversal | C++ Python | O(n) | O(1) | Medium | Morris Traversal |
|
145 | Binary Tree Postorder Traversal | C++ Python | O(n) | O(1) | Hard | Morris Traversal |
|
208 | Implement Trie (Prefix Tree) | C++ Python | O(n) | O(1) | Medium | Trie | |
211 | Add and Search Word - Data structure design | C++ Python | O(min(n, h)) | O(min(n, h)) | Medium | Trie, DFS | |
226 | Invert Binary Tree | C++ Python | O(n) | O(h), O(w) | Easy | ||
297 | Serialize and Deserialize Binary Tree | C++ Python | O(n) | O(h) | Hard | LintCode | DFS |
307 | Range Sum Query - Mutable | C++ 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++ 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++ Python | O(nlogn) | O(n) | Hard | LintCode | BST, BIT, Divide and Conquer |
652 | Find Duplicate Subtrees | C++ Python | O(n) | O(n) | Medium | DFS, Hash | |
653 | Two Sum IV - Input is a BST | C++ Python | O(n) | O(h) | Easy | Two Pointers | |
654 | Maximum Binary Tree | C++ Python | O(n) | O(n) | Medium | LintCode | Descending Stack |
655 | Print Binary Tree | C++ Python | O(n) | O(h) | Medium | ||
662 | Maximum Width of Binary Tree | C++ Python | O(n) | O(h) | Medium | DFS | |
663 | Equal Tree Partition | C++ Python | O(n) | O(n) | Medium | ๐ | Hash |
677 | Map Sum Pairs | C++ Python | O(n) | O(t) | Medium | Trie | |
684 | Redundant Connection | C++ Python | O(n) | O(n) | Medium | Union Find | |
685 | Redundant Connection II | C++ Python | O(n) | O(n) | Hard | Union Find | |
687 | Longest Univalue Path | C++ Python | O(n) | O(h) | Easy | ||
699 | Falling Squares | C++ Python | O(nlogn) | O(n) | Hard | Segment Tree |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
7 | Reverse Integer | C++ Python | O(1) | O(1) | Easy | ||
9 | Palindrome Number | C++ Python | O(1) | O(1) | Easy | ||
12 | Integer to Roman | C++ Python | O(n) | O(1) | Medium | ||
13 | Roman to Integer | C++ Python | O(n) | O(1) | Easy | ||
29 | Divide Two Integers | C++ Python | O(1) | O(1) | Medium | ||
50 | Pow(x, n) | C++ Python | O(1) | O(1) | Medium | ||
60 | Permutation Sequence | C++ Python | O(n^2) | O(n) | Medium | Cantor Ordering |
|
65 | Valid Number | C++ Python | O(n) | O(1) | Hard | Automata |
|
89 | Gray Code | C++ Python | O(2^n) | O(1) | Medium | ||
166 | Fraction to Recurring Decimal | C++ Python | O(logn) | O(1) | Medium | ||
168 | Excel Sheet Column Title | C++ Python | O(logn) | O(1) | Easy | ||
171 | Excel Sheet Column Number | C++ Python | O(n) | O(1) | Easy | ||
172 | Factorial Trailing Zeroes | C++ Python | O(1) | O(1) | Easy | ||
223 | Rectangle Area | C++ Python | O(1) | O(1) | Easy | ||
233 | Number of Digit One | C++ Python | O(1) | O(1) | Hard | CTCI, LintCode | |
248 | Strobogrammatic Number III | C++ Python | O(5^(n/2)) | O(n) | Hard | ๐ | |
258 | Add Digits | C++ Python | O(1) | O(1) | Easy | ||
263 | Ugly Number | C++ Python | O(1) | O(1) | Easy | ||
292 | Nim Game | C++ Python | O(1) | O(1) | Easy | LintCode | |
319 | Bulb Switcher | C++ Python | O(1) | O(1) | Medium | ||
326 | Power of Three | C++ Python | O(1) | O(1) | Easy | ||
335 | Self Crossing | C++ Python | O(n) | O(1) | Hard | ||
338 | Counting Bits | C++ Python | O(n) | O(n) | Medium | ||
343 | Integer Break | C++ Python | O(logn) | O(1) | Medium | Tricky, DP | |
365 | Water and Jug Problem | C++ Python | O(logn) | O(1) | Medium | Euclidean Algorithm | |
372 | Super Pow | C++ Python | O(n) | O(1) | Medium | ||
382 | Linked List Random Node | C++ Python | O(n) | O(1) | Medium | Reservoir Sampling |
|
386 | Lexicographical Numbers | C++ Python | O(n) | O(1) | Medium | ||
390 | Elimination Game | C++ Python | O(logn) | O(1) | Medium | ||
391 | Perfect Rectangle | C++ Python | O(n) | O(n) | Hard | ||
398 | Random Pick Index | C++ Python | O(n) | O(1) | Medium | Reservoir Sampling |
|
400 | Nth Digit | C++ Python | O(logn) | O(1) | Easy | ||
413 | Arithmetic Slices | C++ Python | O(n) | O(1) | Medium | ||
423 | Reconstruct Original Digits from English | C++ Python | O(n) | O(1) | Medium | GCJ2016 - Round 1B | |
441 | Arranging Coins | C++ Python | O(nlogn) | O(1) | Easy | Binary Search | |
453 | Minimum Moves to Equal Array Elements | C++ Python | O(n) | O(1) | Easy | ||
458 | Poor Pigs | C++ Python | O(n) | O(1) | Easy | ||
469 | Convex Polygon | C++ Python | O(n) | O(1) | Medium | ๐ | |
640 | Solve the Equation | C++ Python | O(n) | O(n) | Medium | ||
651 | 4 Keys Keyboard | C++ Python | O(1) | O(1) | Medium | ๐ | Math, DP |
660 | Remove 9 | C++ Python | O(logn) | O(1) | Hard | ๐ | |
672 | Bulb Switcher II | C++ Python | O(1) | O(1) | Medium | ||
728 | Self Dividing Numbers | C++ Python | O(n) | O(1) | Medium |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
56 | Merge Intervals | C++ Python | O(nlogn) | O(1) | Hard | ||
57 | Insert Interval | C++ Python | O(n) | O(1) | Hard | ||
75 | Sort Colors | C++ Python | O(n) | O(1) | Medium | Tri Partition | |
88 | Merge Sorted Array | C++ Python | O(n) | O(1) | Easy | ||
147 | Insertion Sort List | C++ Python | O(n^2) | O(1) | Medium | ||
148 | Sort List | C++ Python | O(nlogn) | O(logn) | Medium | ||
164 | Maximum Gap | C++ Python | O(n) | O(n) | Hard | Tricky | |
179 | Largest Number | C++ Python | O(nlogn) | O(1) | Medium | ||
218 | The Skyline Problem | C++ Python | O(nlogn) | O(n) | Hard | Sort, BST | |
252 | Meeting Rooms | C++ Python | O(nlogn) | O(n) | Easy | ๐ | |
253 | Meeting Rooms II | C++ Python | O(nlogn) | O(n) | Medium | ๐ | |
274 | H-Index | C++ Python | O(n) | O(n) | Medium | Counting Sort | |
280 | Wiggle Sort | C++ Python | O(n) | O(1) | Medium | ๐ | |
324 | Wiggle Sort II | C++ Python | O(n) on average | O(1) | Medium | variant of Sort Colors | Tri Partition |
347 | Top K Frequent Elements | C++ Python | O(n) | O(n) | Medium | Quick Select, Heap, Bucket Sort | |
406 | Queue Reconstruction by Height | C++ Python | O(n * sqrt(n)) | O(n) | Medium | Tricky | |
451 | Sort Characters By Frequency | C++ Python | O(n) | O(n) | Medium | ||
692 | Top K Frequent Words | C++ Python | O(n + klogk) on average | O(n) | Medium | Quick Select, Heap, Bucket Sort |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
19 | Remove Nth Node From End of List | C++ Python | O(n) | O(1) | Easy | ||
86 | Partition List | C++ Python | O(n) | O(1) | Medium | ||
141 | Linked List Cycle | C++ Python | O(n) | O(1) | Easy | ||
142 | Linked List Cycle II | C++ Python | O(n) | O(1) | Medium | ||
143 | Reorder List | C++ Python | O(n) | O(1) | Medium | ||
167 | Two Sum II - Input array is sorted | C++ Python | O(n) | O(1) | Medium | ||
259 | 3Sum Smaller | C++ Python | O(n^2) | O(1) | Medium | ๐, LintCode | |
283 | Move Zeroes | C++ Python | O(n) | O(1) | Easy | ||
287 | Find the Duplicate Number | C++ Python | O(n) | O(1) | Hard | Binary Search, Two Pointers | |
344 | Reverse String | C++ Python | O(n) | O(1) | Easy | ||
345 | Reverse Vowels of a String | C++ Python | O(n) | O(1) | Easy | ||
349 | Intersection of Two Arrays | C++ Python | O(m + n) | O(min(m, n)) | Easy | EPI | Hash, Binary Search |
350 | Intersection of Two Arrays II | C++ Python | O(m + n) | O(1) | Easy | EPI | Hash, Binary Search |
360 | Sort Transformed Array | C++ Python | O(n) | O(1) | Medium | ๐ | |
457 | Circular Array Loop | C++ Python | O(n) | O(1) | Medium |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
4 | Median of Two Sorted Arrays | C++ Python | O(log(min(m, n))) | O(1) | Hard | ||
33 | Search in Rotated Sorted Array | C++ Python | O(logn) | O(1) | Hard | ||
34 | Search for a Range | C++ Python | O(logn) | O(1) | Medium | ||
35 | Search Insert Position | C++ Python | O(logn) | O(1) | Medium | ||
69 | Sqrt(x) | C++ Python | O(logn) | O(1) | Medium | ||
74 | Search a 2D Matrix | C++ Python | O(logm + logn) | O(1) | Medium | ||
81 | Search in Rotated Sorted Array II | C++ Python | O(logn) | O(1) | Medium | ||
153 | Find Minimum in Rotated Sorted Array | C++ Python | O(logn) | O(1) | Medium | ||
154 | Find Minimum in Rotated Sorted Array II | C++ Python | O(logn) ~ O(n) | O(1) | Hard | ||
162 | Find Peak Element | C++ Python | O(logn) | O(1) | Medium | ||
222 | Count Complete Tree Nodes | C++ Python | O((logn)^2) | O(1) | Medium | ||
275 | H-Index II | C++ Python | O(logn) | O(1) | Medium | Binary Search | |
278 | First Bad Version | C++ Python | O(logn) | O(1) | Easy | LintCode | |
300 | Longest Increasing Subsequence | C++ Python | O(nlogn) | O(n) | Medium | CTCI, LintCode | Binary Search, DP |
302 | Smallest Rectangle Enclosing Black Pixels | C++ Python | O(nlogn) | O(1) | Hard | ๐ | |
354 | Russian Doll Envelopes | C++ Python | O(nlogn) | O(1) | Hard | ||
363 | Max Sum of Rectangle No Larger Than K | C++ Python | O(min(m, n)^2 * max(m, n) * logn(max(m, n))) | O(max(m, n)) | Hard | ||
367 | Valid Perfect Square | C++ Python | O(logn) | O(1) | Medium | ||
374 | Guess Number Higher or Lower | C++ Python | O(logn) | O(1) | Easy | ||
410 | Split Array Largest Sum | C++ Python | O(nlogs) | O(1) | Hard | ||
436 | Find Right Interval | C++ Python | O(nlogn) | O(n) | Medium | ||
475 | Heaters | C++ Python | O((m + n) * logn) | O(1) | Easy | ||
658 | Find K Closest Elements | C++ Python | O(logn + k) | O(1) | Medium | ||
668 | Kth Smallest Number in Multiplication Table | C++ Python | O(m * log(m * n)) | O(1) | Hard | ||
719 | Find K-th Smallest Pair Distance | C++ Python | O(nlogn + nlogw) | O(1) | Hard |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
220 | Contains Duplicate III | C++ Python | O(nlogk) | O(k) | Medium | ||
230 | Kth Smallest Element in a BST | C++ Python | O(max(h, k)) | O(min(h, k)) | Medium | ||
235 | Lowest Common Ancestor of a Binary Search Tree | C++ Python | O(h) | O(1) | Easy | EPI | |
270 | Closest Binary Search Tree Value | C++ Python | O(h) | O(1) | Easy | ๐ | |
285 | Inorder Successor in BST | C++ Python | O(h) | O(1) | Medium | ๐ | |
352 | Data Stream as Disjoint Intervals | C++ Python | O(logn) | O(n) | Hard | ||
449 | Serialize and Deserialize BST | C++ Python | O(n) | O(h) | Medium | ||
450 | Delete Node in a BST | C++ Python | O(h) | O(h) | Medium |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
102 | Binary Tree Level Order Traversal | C++ Python | O(n) | O(n) | Easy | ||
107 | Binary Tree Level Order Traversal II | Python | O(n) | O(n) | Easy | ||
103 | Binary Tree Zigzag Level Order Traversal | Python | O(n) | O(n) | Medium | ||
117 | Populating Next Right Pointers in Each Node II | Python | O(n) | O(1) | Hard | ||
127 | Word Ladder | Python | O(n * d) | O(d) | Medium | ||
130 | Surrounded Regions | C++ Python | O(m * n) | O(m + n) | Medium | ||
133 | Clone Graph | Python | O(n) | O(n) | Medium | ||
207 | Course Schedule | Python | O(|V| + |E|) | O(|E|) | Medium | Topological Sort | |
210 | Course Schedule II | Python | O(|V| + |E|) | O(|E|) | Medium | Topological Sort | |
261 | Graph Valid Tree | C++ Python | O(|V| + |E|) | O(|V| + |E|) | Medium | ๐ | |
269 | Alien Dictionary | C++ Python | O(n) | O(1) | Hard | ๐ | Topological Sort, BFS, DFS |
286 | Walls and Gates | C++ Python | O(m * n) | O(g) | Medium | ๐ | |
310 | Minimum Height Trees | C++ Python | O(n) | O(n) | Medium | ||
317 | Shortest Distance from All Buildings | C++ Python | O(k * m * n) | O(m * n) | Hard | ๐ | |
433 | Minimum Genetic Mutation | C++ Python | O(n * b) | O(b) | Medium | ||
444 | Sequence Reconstruction | C++ Python | O(n * s) | O(n) | Medium | ๐ | Topological Sort |
666 | Path Sum IV | C++ Python | O(n) | O(w) | Medium | ๐ | Topological Sort |
675 | Cut Off Trees for Golf Event | C++ Python | O(t * m * n) | O(m * n) | Hard | A* Search Algorithm |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
112 | Path Sum | Python | O(n) | O(h) | Easy | ||
113 | Path Sum II | Python | O(n) | O(h) | Medium | ||
199 | Binary Tree Right Side View | Python | O(n) | O(h) | Medium | ||
200 | Number of Islands | Python | O(m * n) | O(m * n) | Medium | ||
236 | Lowest Common Ancestor of a Binary Tree | C++ Python | O(n) | O(h) | Medium | EPI | |
247 | Strobogrammatic Number II | C++ Python | O(n^2 * 5^(n/2)) | O(n) | Medium | ๐ | |
250 | Count Univalue Subtrees | C++ Python | O(n) | O(h) | Medium | ๐ | |
257 | Binary Tree Paths | C++ Python | O(n * h) | O(h) | Easy | ||
282 | Expression Add Operators | C++ Python | O(4^n) | O(n) | Hard | ||
301 | Remove Invalid Parentheses | C++ Python | O(C(n, c)) | O(c) | Hard | ||
329 | Longest Increasing Path in a Matrix | C++ Python | O(m * n) | O(m * n) | Hard | ||
332 | Reconstruct Itinerary | C++ Python | O(t! / (n1! * n2! * ... nk!)) | O(t) | Medium | ||
339 | Nested List Weight Sum | C++ Python | O(n) | O(h) | Easy | ๐ | |
364 | Nested List Weight Sum II | C++ Python | O(n) | O(h) | Medium | ๐ | |
366 | Find Leaves of Binary Tree | C++ Python | O(n) | O(h) | Medium | ๐ | |
399 | Evaluate Division | C++ Python | O(q * |V|!) | O(e) | Medium | ||
417 | Pacific Atlantic Water Flow | C++ Python | O(m * n) | O(m * n) | Medium | ||
440 | K-th Smallest in Lexicographical Order | C++ Python | O(logn) | O(logn) | Hard | ||
464 | Can I Win | C++ Python | O(n!) | O(n) | Medium | ||
690 | Employee Importance | C++ Python | O(n) | O(h) | Easy | DFS, BFS | |
694 | Number of Distinct Islands | C++ Python | O(m * n) | O(m * n) | Medium | ๐ | |
695 | Max Area of Island | C++ Python | O(m * n) | O(m * n) | Easy | ||
711 | Number of Distinct Islands II | C++ Python | O((m * n) * log(m * n)) | O(m * n) | Hard | ๐ | Hash |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
17 | Letter Combinations of a Phone Number | Python | O(n * 4^n) | O(n) | Medium | ||
22 | Generate Parentheses | Python | O(4^n / n^(3/2)) | O(n) | Medium | ||
37 | Sudoku Solver | Python | O((9!)^9) | O(1) | Hard | ||
39 | Combination Sum | Python | O(k * n^k) | O(k) | Medium | ||
40 | Combination Sum II | Python | O(k * C(n, k)) | O(k) | Medium | ||
46 | Permutations | Python | O(n * n!) | O(n) | Medium | ||
47 | Permutations II | Python | O(n * n!) | O(n) | Medium | ||
51 | N-Queens | Python | O(n!) | O(n) | Hard | ||
52 | N-Queens-II | Python | O(n!) | O(n) | Hard | ||
77 | Combinations | Python | O(n!) | O(n) | Medium | ||
79 | Word Search | Python | O(m * n * l) | O(l) | Medium | ||
93 | Restore IP Addresses | Python | O(1) | O(1) | Medium | ||
78 | Subsets | C++ Python | O(n * 2^n) | O(1) | Medium | ||
90 | Subsets II | C++ Python | O(n * 2^n) | O(1) | Medium | ||
126 | Word Ladder II | Python | O(n * d) | O(d) | Hard | ||
131 | Palindrome Partitioning | Python | O(n^2) ~ O(2^n) | O(n^2) | Medium | ||
140 | Word Break II | C++ Python | O(n * l^2 + n * r) | O(n^2) | Hard | ||
212 | Word Search II | C++ Python | O(m * n * l) | O(l) | Hard | LintCode | Trie, DFS |
216 | Combination Sum III | C++ Python | O(k * C(n, k)) | O(k) | Medium | ||
254 | Factor Combinations | C++ Python | O(nlogn) | O(logn) | Medium | ๐ | |
267 | Palindrome Permutation II | C++ Python | O(n * n!) | O(n) | Medium | ๐ | |
291 | Word Pattern II | C++ Python | O(n * C(n - 1, c - 1)) | O(n + c) | Hard | ๐ | |
294 | Flip Game II | C++ Python | O(n + c^2) | O(c) | Medium | ๐ | DP, Hash |
320 | Generalized Abbreviation | C++ Python | O(n * 2^n) | O(n) | Medium | ๐ | |
425 | Word Squares | C++ Python | O(n^2 * n!) | O(n^2) | Hard | ๐ | |
676 | Implement Magic Dictionary | C++ Python | O(n) | O(d) | Medium | Trie, DFS | |
679 | 24 Game | C++ Python | O(1) | O(1) | Hard | DFS | |
698 | Partition to K Equal Sum Subsets | C++ Python | O(n * 2^n) | O(2^n) | Medium | DFS, DP, Memoization | |
718 | Maximum Length of Repeated Subarray | C++ Python | O(m * n) | O(min(m, n)) | Medium | DP, Hash, Binary Search |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
10 | Regular Expression Matching | Python | O(m * n) | O(n) | Hard | ||
53 | Maximum Subarray | Python | O(n) | O(1) | Medium | ||
62 | Unique Paths | Python | O(m * n) | O(m + n) | Medium | ||
63 | Unique Paths II | Python | O(m * n) | O(m + n) | Medium | ||
64 | Minimum Path Sum | Python | O(m * n) | O(m + n) | Medium | ||
70 | Climbing Stairs | Python | O(n) | O(1) | Easy | ||
72 | Edit Distance | Python | O(m * n) | O(m + n) | Hard | ||
87 | Scramble String | Python | O(n^4) | O(n^3) | Hard | ||
91 | Decode Ways | C++ Python | O(n) | O(1) | Medium | ||
96 | Unique Binary Search Trees | Python | O(n) | O(1) | Medium | Math | |
97 | Interleaving String | Python | O(m * n) | O(m + n) | Hard | ||
115 | Distinct Subsequences | Python | O(n^2) | O(n) | Hard | ||
120 | Triangle | Python | O(m * n) | O(n) | Medium | ||
123 | Best Time to Buy and Sell Stock III | Python | O(n) | O(1) | Hard | ||
132 | Palindrome Partitioning II | Python | O(n^2) | O(n^2) | Hard | ||
139 | Word Break | C++ Python | O(n * l^2) | O(n) | Medium | ||
152 | Maximum Product Subarray | Python | O(n) | O(1) | Medium | ||
174 | Dungeon Game | Python | O(m * n) | O(m + n) | Hard | ||
188 | Best Time to Buy and Sell Stock IV | Python | O(k * n) | O(k) | Hard | ||
198 | House Robber | Python | O(n) | O(1) | Easy | ||
213 | House Robber II | C++ Python | O(n) | O(1) | Medium | ||
221 | Maximal Square | C++ Python | O(n^2) | O(n) | Medium | EPI | |
256 | Paint House | C++ Python | O(n) | O(1) | Medium | ๐ | |
265 | Paint House II | C++ Python | O(n * k) | O(k) | Hard | ๐ | |
276 | Paint Fence | C++ Python | O(n) | O(1) | Easy | ๐ | |
279 | Perfect Squares | C++ Python | O(n * sqrt(n)) | O(n) | Medium | Hash | |
303 | Range Sum Query - Immutable | C++ Python | ctor: O(n), lookup: O(1) | O(n) | Easy | ||
304 | Range Sum Query 2D - Immutable | C++ Python | ctor: O(m * n), lookup: O(1) | O(m * n) | Medium | ||
309 | Best Time to Buy and Sell Stock with Cooldown | C++ Python | O(n) | O(1) | Medium | ||
312 | Burst Balloons | C++ Python | O(n^3) | O(n^2) | Hard | ||
322 | Coin Change | C++ Python | O(n * k) | O(k) | Medium | ||
351 | Android Unlock Patterns | C++ Python | O(9^2 * 2^9) | O(9 * 2^9) | Medium | ๐ | Backtracking |
357 | Count Numbers with Unique Digits | C++ Python | O(n) | O(1) | Medium | Backtracking, Math | |
361 | Bomb Enemy | C++ Python | O(m * n) | O(m * n) | Medium | ๐ | |
368 | Largest Divisible Subset | C++ Python | O(n^2) | O(n) | Medium | ||
375 | Guess Number Higher or Lower II | C++ Python | O(n^2) | O(n^2) | Medium | ||
377 | Combination Sum IV | C++ Python | O(nlogn + n * t) | O(t) | Medium | ||
403 | Frog Jump | C++ Python | O(n) | O(n) ~ O(n^2) | Hard | ||
416 | Partition Equal Subset Sum | C++ Python | O(n * s) | O(s) | Medium | ||
418 | Sentence Screen Fitting | C++ Python | O(r + n * c) | O(n) | Medium | ๐ | |
446 | Arithmetic Slices II - Subsequence | C++ Python | O(n^2) | O(n * d) | Hard | ||
465 | Optimal Account Balancing | C++ Python | O(n * 2^n) | O(n * 2^n) | Hard | ๐ | |
466 | Count The Repetitions | C++ Python | O(s1 * min(s2, n1)) | O(s2) | Hard | ||
467 | Unique Substrings in Wraparound String | C++ Python | O(n) | O(1) | Medium | ||
471 | Encode String with Shortest Length | C++ Python | O(n^3) on average | O(n^2) | Medium | ๐ | |
472 | Concatenated Words | C++ Python | O(n * l^2) | O(n * l) | Medium | ||
474 | Ones and Zeroes | C++ Python | O(s * m * n) | O(m * n) | Medium | ||
650 | 2 Keys Keyboard | C++ Python | O(sqrt(n)) | O(1) | Medium | ||
656 | Coin Path | C++ Python | O(n * B) | O(n) | Hard | ๐ | |
664 | Strange Printer | C++ Python | O(n^3) | O(n^2) | Hard | ||
673 | Number of Longest Increasing Subsequence | C++ Python | O(n^2) | O(n) | Medium | ||
688 | Knight Probability in Chessboard | C++ Python | O(k * n^2) | O(n^2) | Medium | ||
689 | Maximum Sum of 3 Non-Overlapping Subarrays | C++ Python | O(n) | O(n) | Hard | ||
691 | Stickers to Spell Word | C++ Python | O(T * S^T) | O(T * S^T) | Hard | Backtracking, Memoization | |
712 | Minimum ASCII Delete Sum for Two Strings | C++ Python | O(m * n) | O(n) | Medium | ||
714 | Best Time to Buy and Sell Stock with Transaction Fee | C++ Python | O(n) | O(1) | Medium | ||
727 | Minimum Window Subsequence | C++ Python | O(s * t) | O(s) | Hard | ๐ | |
730 | Count Different Palindromic Subsequences | C++ Python | O(n^2) | O(n) | Hard |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
11 | Container With Most Water | C++ Python | O(n) | O(1) | Medium | ||
42 | Trapping Rain Water | C++ Python | O(n) | O(1) | Hard | Tricky | |
44 | Wildcard Matching | Python | O(m + n) | O(1) | Hard | Tricky | |
45 | Jump Game II | Python | O(n) | O(1) | Hard | ||
55 | Jump Game | Python | O(n) | O(1) | Medium | ||
122 | Best Time to Buy and Sell Stock II | Python | O(n) | O(1) | Medium | ||
134 | Gas Station | Python | O(n) | O(1) | Medium | ||
135 | Candy | C++ Python | O(n) | O(n) | Hard | ||
316 | Remove Duplicate Letters | C++ Python | O(n) | O(k) | Hard | Ascending Stack | |
321 | Create Maximum Number | C++ 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++ Python | O(s + logn) | O(1) | Hard | ||
376 | Wiggle Subsequence | C++ Python | O(n) | O(1) | Medium | ||
392 | Is Subsequence | C++ Python | O(n) | O(1) | Medium | ||
397 | Integer Replacement | C++ Python | O(n) | O(1) | Medium | Math | |
402 | Remove K Digits | C++ Python | O(n) | O(n) | Medium | LintCode | |
435 | Non-overlapping Intervals | C++ Python | O(nlogn) | O(1) | Medium | ||
452 | Minimum Number of Arrows to Burst Balloons | C++ Python | O(nlogn) | O(1) | Medium | ||
455 | Assign Cookies | C++ Python | O(nlogn) | O(1) | Easy | ||
646 | Maximum Length of Pair Chain | C++ Python | O(nlogn) | O(1) | Medium | Scan Line | |
649 | Dota2 Senate | C++ Python | O(n) | O(n) | Medium | ||
659 | Split Array into Consecutive Subsequences | C++ Python | O(n) | O(1) | Medium |
# | Title | Solution | Time | Space | Difficulty | Tag | Note |
---|---|---|---|---|---|---|---|
146 | LRU Cache | C++ Python | O(1) | O(k) | Hard | ||
225 | Implement Stack using Queues | C++ Python | push: O(n), pop: O(1), top: O(1) | O(n) | Easy | ||
284 | Peeking Iterator | C++ Python | O(1) | O(1) | Medium | ||
348 | Design Tic-Tac-Toe | C++ Python | O(1) | O(n^2) | Medium | ๐ | |
353 | Design Snake Game | C++ Python | O(1) | O(s) | Medium | ๐ | Deque |
355 | Design Twitter | C++ Python | O(klogu) | O(t + f) | Medium | LintCode | Heap |
359 | Logger Rate Limiter | C++ Python | O(1), amortized | O(k) | Easy | ๐ | Deque |
362 | Design Hit Counter | C++ Python | O(1), amortized | O(k) | Medium | ๐ | Deque |
379 | Design Phone Directory | C++ Python | O(1) | O(n) | Medium | ๐ | |
380 | Insert Delete GetRandom O(1) | C++ Python | O(1) | O(n) | Hard | ||
381 | Insert Delete GetRandom O(1) - Duplicates allowed | C++ Python | O(1) | O(n) | Hard | ||
432 | All O`one Data Structure | C++ Python | O(1) | O(n) | Hard | ||
460 | LFU Cache | C++ Python | O(1) | O(k) | Hard | ||
642 | Design Search Autocomplete System | C++ Python | O(p^2) | O(p * t + s) | Hard | ๐ | |
715 | Range Module | C++ Python | add: O(n) remove: O(n) query: O(logn) |
O(n) | Hard | ||
716 | Max Stack | C++ Python | push: O(logn) pop: O(logn) popMax: O(logn) top: O(1) peekMax: O(1) |
O(n) | Easy |
# | 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 |
# | 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 |