- R.I.P. to my old Leetcode repository, where there were
5.7k+stars and2.2k+forks (ever the top 3 in the field). - Since free questions may be even mistakenly taken down by some companies, only solutions will be post on now.
- There are new LeetCode questions every week. I'll keep updating for full summary and better solutions.
- For more problem solutions, you can see my LintCode repository.
- For more challenging problem solutions, you can also see my GoogleCodeJam, FacebookHackerCup repositories.
- Hope you enjoy the journey of learning data structures and algorithms.
- Notes: "π" means your subscription of LeetCode premium membership is required for reading the question.
- 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
- Graph
- Geometry
- Simulation
- Design
- Concurrency
- C++
- Python
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0239 | Sliding Window Maximum | C++ Python | O(n) | O(k) | Hard | EPI, LintCode | |
| 0281 | Zigzag Iterator | C++ Python | O(n) | O(k) | Medium | π | |
| 0346 | Moving Average from Data Stream | C++ Python | O(1) | O(w) | Easy | π | |
| 0862 | Shortest Subarray with Sum at Least K | C++ Python | O(n) | O(n) | Hard | ||
| 0933 | Number of Recent Calls | C++ Python | O(1) on average | O(w) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0264 | Ugly Number II | C++ Python | O(n) | O(1) | Medium | CTCI, LintCode | BST, Heap |
| 0295 | Find Median from Data Stream | C++ Python | O(nlogn) | O(n) | Hard | EPI, LintCode | BST, Heap |
| 0313 | Super Ugly Number | C++ Python | O(n * k) | O(n + k) | Medium | BST, Heap | |
| 0358 | Rearrange String k Distance Apart | C++ Python | O(n) | O(n) | Hard | π | Greedy, Heap |
| 0373 | Find K Pairs with Smallest Sums | C++ Python | O(k * log(min(n, m, k))) | O(min(n, m, k)) | Medium | ||
| 0378 | Kth Smallest Element in a Sorted Matrix | C++ Python | O(k * log(min(n, m, k))) | O(min(n, m, k)) | Medium | LintCode | |
| 0407 | Trapping Rain Water II | C++ Python | O(m * n * (logm + logn)) | O(m * n) | Hard | LintCode | |
| 0632 | Smallest Range | C++ Python | O(nlogk) | O(k) | Hard | ||
| 0703 | Kth Largest Element in a Stream | C++ Python | O(nlogk) | O(k) | Easy | ||
| 0846 | Hand of Straights | C++ Python | O(nlogn) | O(n) | Medium | ||
| 0855 | Exam Room | C++ Python | seat: O(logn) leave: O(logn) |
O(n) | Medium | BST, Hash | |
| 0857 | Minimum Cost to Hire K Workers | C++ Python | O(nlogn) | O(n) | Hard | Sort | |
| 0871 | Minimum Number of Refueling Stops | C++ Python | O(nlogn) | O(n) | Hard | Sort | |
| 1046 | Last Stone Weight | C++ Python | O(nlogn) | O(n) | Easy | ||
| 1057 | Campus Bikes | C++ Python | O((w * b) * log(w * b)) | O(w * b) | Medium | π | |
| 1383 | Maximum Performance of a Team | C++ Python | O(nlogn) | O(n) | Hard | variant of Minimum Cost to Hire K Workers | Sort |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0056 | Merge Intervals | C++ Python | O(nlogn) | O(1) | Hard | ||
| 0057 | Insert Interval | C++ Python | O(n) | O(1) | Hard | ||
| 0075 | Sort Colors | C++ Python | O(n) | O(1) | Medium | Tri Partition | |
| 0088 | Merge Sorted Array | C++ Python | O(n) | O(1) | Easy | ||
| 0147 | Insertion Sort List | C++ Python | O(n^2) | O(1) | Medium | ||
| 0148 | Sort List | C++ Python | O(nlogn) | O(logn) | Medium | ||
| 0164 | Maximum Gap | C++ Python | O(n) | O(n) | Hard | Tricky | |
| 0179 | Largest Number | C++ Python | O(nlogn) | O(1) | Medium | ||
| 0218 | The Skyline Problem | C++ Python | O(nlogn) | O(n) | Hard | Sort, BST | |
| 0252 | Meeting Rooms | C++ Python | O(nlogn) | O(n) | Easy | π | |
| 0253 | Meeting Rooms II | C++ Python | O(nlogn) | O(n) | Medium | π | |
| 0274 | H-Index | C++ Python | O(n) | O(n) | Medium | Counting Sort | |
| 0280 | Wiggle Sort | C++ Python | O(n) | O(1) | Medium | π | |
| 0324 | Wiggle Sort II | C++ Python | O(n) on average | O(1) | Medium | variant of Sort Colors | Tri Partition |
| 0347 | Top K Frequent Elements | C++ Python | O(n) | O(n) | Medium | Quick Select, Heap, Bucket Sort | |
| 0406 | Queue Reconstruction by Height | C++ Python | O(n * sqrt(n)) | O(n) | Medium | Tricky | |
| 0451 | Sort Characters By Frequency | C++ Python | O(n) | O(n) | Medium | ||
| 0692 | Top K Frequent Words | C++ Python | O(n + klogk) on average | O(n) | Medium | Quick Select, Heap, Bucket Sort | |
| 0912 | Sort an Array | C++ Python | O(nlogn) | O(n) | Medium | Merge Sort, Quick Sort | |
| 0937 | Reorder Log Files | C++ Python | O(nlogn * l) | O(l) | Easy | ||
| 0969 | Pancake Sorting | C++ Python | O(n^2) | O(l) | Medium | ||
| 0973 | K Closest Points to Origin | C++ Python | O(n) on average | O(1) | Easy | Quick Select, Heap | |
| 0976 | Largest Perimeter Triangle | C++ Python | O(nlogn) | O(1) | Easy | ||
| 1054 | Distant Barcodes | C++ Python | O(klogk) | O(k) | Medium | variant of Rearrange String k Distance Apart | |
| 1086 | High Five | C++ Python | O(nlogn) | O(n) | Easy | π | |
| 1094 | Car Pooling | C++ Python | O(nlogn) | O(n) | Medium | variant of Meeting Rooms II | |
| 1122 | Relative Sort Array | C++ Python | O(nlogn) | O(n) | Easy | ||
| 1229 | Meeting Scheduler | C++ Python | O(nlogn) | O(n) | Medium | Line Sweep, Heap | |
| 1356 | Sort Integers by The Number of 1 Bits | C++ Python | O(nlogn) | O(1) | Easy | Bit Manipulation | |
| 1365 | How Many Numbers Are Smaller Than the Current Number | C++ Python | O(n + m) | O(m) | Easy | Counting Sort | |
| 1366 | Rank Teams by Votes | C++ Python | O(m * (n + mlogm)) | O(m^2) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0004 | Median of Two Sorted Arrays | C++ Python | O(log(min(m, n))) | O(1) | Hard | ||
| 0033 | Search in Rotated Sorted Array | C++ Python | O(logn) | O(1) | Hard | ||
| 0034 | Search for a Range | C++ Python | O(logn) | O(1) | Medium | ||
| 0035 | Search Insert Position | C++ Python | O(logn) | O(1) | Medium | ||
| 0069 | Sqrt(x) | C++ Python | O(logn) | O(1) | Medium | ||
| 0074 | Search a 2D Matrix | C++ Python | O(logm + logn) | O(1) | Medium | ||
| 0081 | Search in Rotated Sorted Array II | C++ Python | O(logn) | O(1) | Medium | ||
| 0153 | Find Minimum in Rotated Sorted Array | C++ Python | O(logn) | O(1) | Medium | ||
| 0154 | Find Minimum in Rotated Sorted Array II | C++ Python | O(logn) ~ O(n) | O(1) | Hard | ||
| 0162 | Find Peak Element | C++ Python | O(logn) | O(1) | Medium | ||
| 0222 | Count Complete Tree Nodes | C++ Python | O((logn)^2) | O(1) | Medium | ||
| 0275 | H-Index II | C++ Python | O(logn) | O(1) | Medium | Binary Search | |
| 0278 | First Bad Version | C++ Python | O(logn) | O(1) | Easy | LintCode | |
| 0300 | Longest Increasing Subsequence | C++ Python | O(nlogn) | O(n) | Medium | CTCI, LintCode | Binary Search, DP |
| 0302 | Smallest Rectangle Enclosing Black Pixels | C++ Python | O(nlogn) | O(1) | Hard | π | |
| 0354 | Russian Doll Envelopes | C++ Python | O(nlogn) | O(1) | Hard | ||
| 0363 | 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 | ||
| 0367 | Valid Perfect Square | C++ Python | O(logn) | O(1) | Medium | ||
| 0374 | Guess Number Higher or Lower | C++ Python | O(logn) | O(1) | Easy | ||
| 0410 | Split Array Largest Sum | C++ Python | O(nlogs) | O(1) | Hard | ||
| 0436 | Find Right Interval | C++ Python | O(nlogn) | O(n) | Medium | ||
| 0475 | Heaters | C++ Python | O((m + n) * logn) | O(1) | Easy | ||
| 0540 | Single Element in a Sorted Array | C++ Python | O(logn) | O(1) | Medium | ||
| 0658 | Find K Closest Elements | C++ Python | O(logn + k) | O(1) | Medium | ||
| 0668 | Kth Smallest Number in Multiplication Table | C++ Python | O(m * log(m * n)) | O(1) | Hard | ||
| 0719 | Find K-th Smallest Pair Distance | C++ Python | O(nlogn + nlogw) | O(1) | Hard | ||
| 0744 | Find Smallest Letter Greater Than Target | C++ Python | O(logn) | O(1) | Easy | ||
| 0774 | Minimize Max Distance to Gas Station | C++ Python | O(nlogr) | O(1) | Hard | ||
| 0786 | K-th Smallest Prime Fraction | C++ Python | O(nlogr) | O(1) | Hard | ||
| 0793 | Preimage Size of Factorial Zeroes Function | C++ Python | O((logn)^2) | O(1) | Hard | ||
| 0852 | Peak Index in a Mountain Array | C++ Python | O(logn) | O(1) | Easy | ||
| 0864 | Random Pick with Blacklist | C++ Python | ctor: O(b) pick: O(1) |
O(b) | Hard | ||
| 0875 | Koko Eating Bananas | C++ Python | O(nlogr) | O(1) | Medium | ||
| 0878 | Nth Magical Number | C++ Python | O(logn) | O(1) | Hard | ||
| 0894 | All Possible Full Binary Trees | C++ Python | O(n * 4^n / n^(3/2)) | O(n * 4^n / n^(3/2)) | Medium | ||
| 0911 | Online Election | C++ Python | ctor: O(n) query : O(logn) |
O(n) | Medium | ||
| 0981 | Time Based Key-Value Store | C++ Python | set: O(1) get : O(logn) |
O(n) | Medium | ||
| 1011 | Capacity To Ship Packages Within D Days | C++ Python | O(nlogr) | O(1) | Medium | ||
| 1044 | Longest Duplicate Substring | C++ Python | O(nlogn) | O(n) | Hard | Rabin-Karp Algorithm, Suffix Tree, Ukkonen's Algorithm |
|
| 1060 | Missing Element in Sorted Array | C++ Python | O(logn) | O(1) | Medium | π | |
| 1062 | Longest Repeating Substring | C++ Python | O(nlogn) | O(n) | Medium | π | Rabin-Karp Algorithm |
| 1064 | Fixed Point | C++ Python | O(logn) | O(1) | Easy | π | |
| 1095 | Find in Mountain Array | C++ Python | O(logn) | O(1) | Hard | ||
| 1110 | Delete Nodes And Return Forest | C++ Python | O(n) | O(h + d) | Medium | ||
| 1170 | Compare Strings by Frequency of the Smallest Character | C++ Python | O((m + n)logn) | O(n) | Easy | ||
| 1201 | Ugly Number III | C++ Python | O(logn) | O(1) | Medium | Inclusion-Exclusion Principle | |
| 1228 | Missing Number In Arithmetic Progression | C++ Python | O(logn) | O(1) | Easy | ||
| 1231 | Divide Chocolate | C++ Python | O(nlogn) | O(1) | Hard | ||
| 1274 | Number of Ships in a Rectangle | C++ Python | O(log(m * n)) | O(log(m * n)) | Hard | Divide and Conquer | |
| 1283 | Find the Smallest Divisor Given a Threshold | C++ Python | O(logn) | O(1) | Medium | ||
| 1287 | Element Appearing More Than 25% In Sorted Array | C++ Python | O(logn) | O(1) | Easy | ||
| 1385 | Find the Distance Value Between Two Arrays | C++ Python | O((n + m) * logm) | O(1) | Easy | Binary Search, Two Pointers |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0220 | Contains Duplicate III | C++ Python | O(nlogk) | O(k) | Medium | ||
| 0230 | Kth Smallest Element in a BST | C++ Python | O(max(h, k)) | O(min(h, k)) | Medium | ||
| 0235 | Lowest Common Ancestor of a Binary Search Tree | C++ Python | O(h) | O(1) | Easy | EPI | |
| 0270 | Closest Binary Search Tree Value | C++ Python | O(h) | O(1) | Easy | π | |
| 0285 | Inorder Successor in BST | C++ Python | O(h) | O(1) | Medium | π | |
| 0352 | Data Stream as Disjoint Intervals | C++ Python | O(logn) | O(n) | Hard | ||
| 0449 | Serialize and Deserialize BST | C++ Python | O(n) | O(h) | Medium | ||
| 0450 | Delete Node in a BST | C++ Python | O(h) | O(h) | Medium | ||
| 0530 | Minimum Absolute Difference in BST | C++ Python | O(n) | O(h) | Easy | ||
| 0776 | Split BST | C++ Python | O(n) | O(h) | Medium | π | |
| 0783 | Minimum Distance Between BST Nodes | C++ Python | O(n) | O(h) | Easy | ||
| 0510 | Inorder Successor in BST II | C++ Python | O(h) | O(1) | Medium | π | |
| 1373 | Maximum Sum BST in Binary Tree | C++ Python | O(n) | O(h) | Hard | DFS, Stack | |
| 1382 | Balance a Binary Search Tree | C++ Python | O(n) | O(h) | Medium | DFS, Stack |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0102 | Binary Tree Level Order Traversal | C++ Python | O(n) | O(n) | Easy | ||
| 0107 | Binary Tree Level Order Traversal II | C++ Python | O(n) | O(n) | Easy | ||
| 0103 | Binary Tree Zigzag Level Order Traversal | Python | O(n) | O(n) | Medium | ||
| 0117 | Populating Next Right Pointers in Each Node II | Python | O(n) | O(1) | Hard | ||
| 0127 | Word Ladder | Python | O(n * d) | O(d) | Medium | ||
| 0130 | Surrounded Regions | C++ Python | O(m * n) | O(m + n) | Medium | ||
| 0133 | Clone Graph | Python | O(n) | O(n) | Medium | ||
| 0207 | Course Schedule | Python | O(|V| + |E|) | O(|E|) | Medium | Topological Sort | |
| 0210 | Course Schedule II | Python | O(|V| + |E|) | O(|E|) | Medium | Topological Sort | |
| 0261 | Graph Valid Tree | C++ Python | O(|V| + |E|) | O(|V| + |E|) | Medium | π | |
| 0269 | Alien Dictionary | C++ Python | O(n) | O(1) | Hard | π | Topological Sort, BFS, DFS |
| 0286 | Walls and Gates | C++ Python | O(m * n) | O(g) | Medium | π | |
| 0310 | Minimum Height Trees | C++ Python | O(n) | O(n) | Medium | ||
| 0317 | Shortest Distance from All Buildings | C++ Python | O(k * m * n) | O(m * n) | Hard | π | |
| 0433 | Minimum Genetic Mutation | C++ Python | O(n * b) | O(b) | Medium | ||
| 0444 | Sequence Reconstruction | C++ Python | O(n * s) | O(n) | Medium | π | Topological Sort |
| 0490 | The Maze | C++ Python | O(max(r, c) * w) | O(w) | Medium | ||
| 0499 | The Maze III | C++ Python | O(max(r, c) * wlogw) | O(w^2) | Hard | ||
| 0505 | The Maze II | C++ Python | O(max(r, c) * wlogw) | O(w) | Medium | ||
| 0542 | 01 Matrix | C++ Python | O(m * n) | O(m * n) | Medium | DP | |
| 0666 | Path Sum IV | C++ Python | O(n) | O(w) | Medium | π | Topological Sort |
| 0675 | Cut Off Trees for Golf Event | C++ Python | O(t * m * n) | O(m * n) | Hard | A* Search Algorithm |
|
| 0742 | Closest Leaf in a Binary Tree | C++ Python | O(n) | O(n) | Medium | ||
| 0743 | Network Delay Time | C++ Python | O(|E| * log|V|) | O(|E|) | Medium | Dijkstra's algorithm |
|
| 0752 | Open the Lock | C++ Python | O(k * n^k + d) | O(k * n^k + d) | Medium | ||
| 0773 | Sliding Puzzle | C++ Python | O((m * n) * (m * n)!) | O((m * n) * (m * n)!) | Hard | A* Search Algorithm |
|
| 0787 | Cheapest Flights Within K Stops | C++ Python | O(|E| * log|V|) | O(|E|) | Medium | Dijkstra's algorithm |
|
| 0815 | Bus Routes | C++ Python | O(|E| + |V|) | O(|E| + |V|) | Hard | ||
| 0854 | K-Similar Strings | C++ Python | O(n * n!/(c_a!*...*c_z!)) | O(n * n!/(c_a!*...*c_z!)) | Hard | ||
| 0865 | Shortest Path to Get All Keys | C++ Python | O(k * r * c + k^3*2^k) | O(k*2^k) | Hard | Dijkstra's algorithm |
|
| 0882 | Reachable Nodes In Subdivided Graph | C++ Python | O(|E| * log|V|) | O(|E|) | Hard | Dijkstra's algorithm |
|
| 0886 | Possible Bipartition | C++ Python | O(|V| + |E|) | O(|V| + |E|) | Medium | ||
| 0934 | Shortest Bridge | C++ Python | O(n^2) | O(n^2) | Medium | BFS, DFS | |
| 0967 | Numbers With Same Consecutive Differences | C++ Python | O(2^n) | O(2^n) | Medium | ||
| 0994 | Rotting Oranges | C++ Python | O(m * n) | O(m * n) | Easy | ||
| 1034 | Coloring A Border | C++ Python | O(m * n) | O(m + n) | Medium | ||
| 1036 | Escape a Large Maze | C++ Python | O(n^2) | O(n) | Hard | ||
| 1091 | Shortest Path in Binary Matrix | C++ Python | O(n^2) | O(n) | Medium | ||
| 1102 | Path With Maximum Minimum Value | C++ Python | O((m * n) * log(m * n)) | O(m * n) | Medium | π | Binary Search, DFS, Dijkstra's algorithm |
| 1129 | Shortest Path with Alternating Colors | C++ Python | O(n + e) | O(n + e) | Medium | ||
| 1136 | Parallel Courses | C++ Python | O(|V| + |E|) | O(|E|) | Hard | π | Topological Sort |
| 1161 | Maximum Level Sum of a Binary Tree | C++ Python | O(n) | O(w) | Medium | DFS | |
| 1162 | As Far from Land as Possible | C++ Python | O(m * n) | O(m * n) | Medium | ||
| 1163 | Last Substring in Lexicographical Order | C++ Python | O(n) | O(n) | Hard | ||
| 1203 | Sort Items by Groups Respecting Dependencies | C++ Python | O(n + e) | O(n + e) | Hard | Topological Sort | |
| 1210 | Minimum Moves to Reach Target with Rotations | C++ Python | O(n) | O(n) | Hard | ||
| 1215 | Stepping Numbers | C++ Python | O(logk + r) | O(k) | Medium | π | Precompute, Binary Search |
| 1245 | Tree Diameter | C++ Python | O(|V| + |E|) | O(|E|) | Medium | ||
| 1263 | Minimum Moves to Move a Box to Their Target Location | C++ Python | O(m^2 * n^2) | O(m^2 * n^2) | Hard | A* Search Algorithm |
|
| 1284 | Minimum Number of Flips to Convert Binary Matrix to Zero Matrix | C++ Python | O((m * n) * 2^(m * n)) | O((m * n) * 2^(m * n)) | Hard | ||
| 1291 | Sequential Digits | C++ Python | O(1) | O(1) | Medium | ||
| 1293 | Shortest Path in a Grid with Obstacles Elimination | C++ Python | O(m * n * k) | O(m * n) | Hard | A* Search Algorithm |
|
| 1298 | Maximum Candies You Can Get from Boxes | C++ Python | O(n^2) | O(n) | Hard | ||
| 1302 | Deepest Leaves Sum | C++ Python | O(n) | O(w) | Medium | ||
| 1306 | Jump Game III | C++ Python | O(n) | O(n) | Medium | ||
| 1311 | Get Watched Videos by Your Friends | C++ Python | O(n + vlogv) | O(w) | Medium | ||
| 1345 | Jump Game IV | C++ Python | O(n) | O(n) | Hard | ||
| 1368 | Minimum Cost to Make at Least One Valid Path in a Grid | C++ Python | O(m * n) | O(m * n) | Hard | A* Search Algorithm, 0-1 BFS, Deque |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0112 | Path Sum | Python | O(n) | O(h) | Easy | ||
| 0113 | Path Sum II | Python | O(n) | O(h) | Medium | ||
| 0199 | Binary Tree Right Side View | Python | O(n) | O(h) | Medium | ||
| 0200 | Number of Islands | Python | O(m * n) | O(m * n) | Medium | ||
| 0236 | Lowest Common Ancestor of a Binary Tree | C++ Python | O(n) | O(h) | Medium | EPI | |
| 0247 | Strobogrammatic Number II | C++ Python | O(n^2 * 5^(n/2)) | O(n) | Medium | π | |
| 0250 | Count Univalue Subtrees | C++ Python | O(n) | O(h) | Medium | π | |
| 0257 | Binary Tree Paths | C++ Python | O(n * h) | O(h) | Easy | ||
| 0282 | Expression Add Operators | C++ Python | O(4^n) | O(n) | Hard | ||
| 0301 | Remove Invalid Parentheses | C++ Python | O(C(n, c)) | O(c) | Hard | ||
| 0329 | Longest Increasing Path in a Matrix | C++ Python | O(m * n) | O(m * n) | Hard | ||
| 0332 | Reconstruct Itinerary | C++ Python | O(t! / (n1! * n2! * ... nk!)) | O(t) | Medium | ||
| 0339 | Nested List Weight Sum | C++ Python | O(n) | O(h) | Easy | π | |
| 0364 | Nested List Weight Sum II | C++ Python | O(n) | O(h) | Medium | π | |
| 0366 | Find Leaves of Binary Tree | C++ Python | O(n) | O(h) | Medium | π | |
| 0399 | Evaluate Division | C++ Python | O(q * |V|!) | O(e) | Medium | ||
| 0417 | Pacific Atlantic Water Flow | C++ Python | O(m * n) | O(m * n) | Medium | ||
| 0440 | K-th Smallest in Lexicographical Order | C++ Python | O(logn) | O(logn) | Hard | ||
| 0464 | Can I Win | C++ Python | O(n!) | O(n) | Medium | ||
| 0515 | Find Largest Value in Each Tree Row | C++ Python | O(n) | O(h) | Medium | ||
| 0547 | Friend Circles | C++ Python | O(n^2) | O(n) | Medium | Union Find | |
| 0582 | Kill Process | C++ Python | O(n) | O(n) | Medium | π | DFS, BFS |
| 0638 | Shopping Offers | C++ Python | O(n * 2^n) | O(n) | Medium | ||
| 0690 | Employee Importance | C++ Python | O(n) | O(h) | Easy | DFS, BFS | |
| 0694 | Number of Distinct Islands | C++ Python | O(m * n) | O(m * n) | Medium | π | |
| 0695 | Max Area of Island | C++ Python | O(m * n) | O(m * n) | Easy | ||
| 0711 | Number of Distinct Islands II | C++ Python | O((m * n) * log(m * n)) | O(m * n) | Hard | π | Hash |
| 0733 | Max Area of Island | C++ Python | O(m * n) | O(m * n) | Easy | ||
| 0749 | Contain Virus | C++ Python | O((m * n)^(4/3)) | O(m * n) | Hard | Simulation | |
| 0753 | Cracking the Safe | C++ Python | O(k^n) | O(k^n) | Hard | de Bruijn sequences, Lyndon word |
|
| 0756 | Pyramid Transition Matrix | C++ Python | O(a^b) | O(a^b) | Medium | ||
| 0785 | Is Graph Bipartite? | C++ Python | O(|V| + |E|) | O(|V|) | Medium | ||
| 0797 | All Paths From Source to Target | C++ Python | O(p + r * n) | O(n) | Medium | ||
| 0802 | Find Eventual Safe States | C++ Python | O(|V| + |E|) | O(|V|) | Medium | ||
| 0827 | Making A Large Island | C++ Python | O(n^2) | O(n^2) | Hard | ||
| 0834 | Sum of Distances in Tree | C++ Python | O(n) | O(n) | Hard | ||
| 0841 | Keys and Rooms | C++ Python | O(n!) | O(n) | Medium | ||
| 0851 | Loud and Rich | C++ Python | O(q + r) | O(q + r) | Medium | ||
| 0913 | Cat and Mouse | C++ Python | O(n^3) | O(n^2) | Hard | ||
| 1020 | Number of Enclaves | C++ Python | O(m * n) | O(m * n) | Medium | ||
| 1059 | All Paths from Source Lead to Destination | C++ Python | O(n + e) | O(n + e) | Medium | π | |
| 1192 | Critical Connections in a Network | C++ Python | O(|V| + |E|) | O(|V| + |E|) | Hard | Tarjan's Algorithm, Bridge Finding Algorithm |
|
| 1202 | Smallest String With Swaps | C++ Python | O(nlogn) | O(n) | Medium | Union Find | |
| 1254 | Number of Closed Islands | C++ Python | O(m * n) | O(1) | Medium | ||
| 1273 | Delete Tree Nodes | C++ Python | O(n) | O(n) | Medium | DFS, DP | |
| 1315 | Sum of Nodes with Even-Valued Grandparent | C++ Python | O(n) | O(h) | Medium | ||
| 1319 | Number of Operations to Make Network Connected | C++ Python | O(|E| + |V|) | O(|V|) | Medium | Union Find | |
| 1367 | Linked List in Binary Tree | C++ Python | O(n + l) | O(h + l) | Medium | KMP Algorithm |
|
| 1372 | Longest ZigZag Path in a Binary Tree | C++ Python | O(n) | O(h) | Medium | ||
| 1376 | Time Needed to Inform All Employees | C++ Python | O(n) | O(n) | Medium | ||
| 1377 | Frog Position After T Seconds | C++ Python | O(n) | O(n) | Hard | DFS, Stack, BFS | |
| 1391 | Check if There is a Valid Path in a Grid | C++ Python | O(m * n) | O(1) | Medium | Simulation |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0017 | Letter Combinations of a Phone Number | Python | O(n * 4^n) | O(n) | Medium | ||
| 0022 | Generate Parentheses | Python | O(4^n / n^(3/2)) | O(n) | Medium | ||
| 0037 | Sudoku Solver | Python | O((9!)^9) | O(1) | Hard | ||
| 0039 | Combination Sum | Python | O(k * n^k) | O(k) | Medium | ||
| 0040 | Combination Sum II | Python | O(k * C(n, k)) | O(k) | Medium | ||
| 0046 | Permutations | Python | O(n * n!) | O(n) | Medium | ||
| 0047 | Permutations II | Python | O(n * n!) | O(n) | Medium | ||
| 0051 | N-Queens | Python | O(n!) | O(n) | Hard | ||
| 0052 | N-Queens-II | Python | O(n!) | O(n) | Hard | ||
| 0077 | Combinations | Python | O(O(k * C(n, k))) | O(k) | Medium | ||
| 0079 | Word Search | Python | O(m * n * l) | O(l) | Medium | ||
| 0093 | Restore IP Addresses | Python | O(1) | O(1) | Medium | ||
| 0078 | Subsets | C++ Python | O(n * 2^n) | O(1) | Medium | ||
| 0090 | Subsets II | C++ Python | O(n * 2^n) | O(1) | Medium | ||
| 0126 | Word Ladder II | Python | O(n * d) | O(d) | Hard | ||
| 0131 | Palindrome Partitioning | Python | O(n^2) ~ O(2^n) | O(n^2) | Medium | ||
| 0140 | Word Break II | C++ Python | O(n * l^2 + n * r) | O(n^2) | Hard | ||
| 0212 | Word Search II | C++ Python | O(m * n * l) | O(l) | Hard | LintCode | Trie, DFS |
| 0216 | Combination Sum III | C++ Python | O(k * C(n, k)) | O(k) | Medium | ||
| 0254 | Factor Combinations | C++ Python | O(nlogn) | O(logn) | Medium | π | |
| 0267 | Palindrome Permutation II | C++ Python | O(n * n!) | O(n) | Medium | π | |
| 0291 | Word Pattern II | C++ Python | O(n * C(n - 1, c - 1)) | O(n + c) | Hard | π | |
| 0294 | Flip Game II | C++ Python | O(n + c^2) | O(c) | Medium | π | DP, Hash |
| 0320 | Generalized Abbreviation | C++ Python | O(n * 2^n) | O(n) | Medium | π | |
| 0425 | Word Squares | C++ Python | O(n^2 * n!) | O(n^2) | Hard | π | |
| 0526 | Beautiful Arrangement | C++ Python | O(n!) | O(n) | Medium | ||
| 0676 | Implement Magic Dictionary | C++ Python | O(n) | O(d) | Medium | Trie, DFS | |
| 0679 | 24 Game | C++ Python | O(1) | O(1) | Hard | DFS | |
| 0698 | Partition to K Equal Sum Subsets | C++ Python | O(n * 2^n) | O(2^n) | Medium | DFS, DP, Memoization | |
| 0718 | Maximum Length of Repeated Subarray | C++ Python | O(m * n) | O(min(m, n)) | Medium | DP, Hash, Binary Search | |
| 0784 | Letter Case Permutation | C++ Python | O(n * 2^n) | O(1) | Easy | ||
| 0996 | Number of Squareful Arrays | C++ Python | O(n!) | O(n^2) | Hard | ||
| 1087 | Brace Expansion | C++ Python | O(p * l * log(p * l)) | O(p * l) | Medium | π | |
| 1096 | Brace Expansion II | C++ Python | O(p * l * log(p * l)) | O(p * l) | Hard | ||
| 1219 | Path with Maximum Gold | C++ Python | O(m^2 * n^2) | O(m * n) | Medium | ||
| 1240 | Tiling a Rectangle with the Fewest Squares | C++ Python | O(n^2 * m^2 * m^(n * m)) | O(n * m) | Hard | ||
| 1255 | Maximum Score Words Formed by Letters | C++ Python | O(n * 2^n) | O(n) | Hard | ||
| 1258 | Synonymous Sentences | C++ Python | O(p * l * log(p * l)) | O(p * l) | Medium | Union Find | |
| 1307 | Verbal Arithmetic Puzzle | C++ Python | O(10! * n * l) | O(n * l) | Hard | ||
| 1379 | Find a Corresponding Node of a Binary Tree in a Clone of That Tree | C++ Python | O(n) | O(h) | Medium | Stack |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0765 | Couples Holding Hands | C++ Python | O(n) | O(n) | Hard | ||
| 0924 | Minimize Malware Spread | C++ Python | O(n^2) | O(n) | Hard | Union Find | |
| 0928 | Minimize Malware Spread II | C++ Python | O(n^2) | O(n) | Hard | Union Find | |
| 0959 | Regions Cut By Slashes | C++ Python | O(n^2) | O(n^2) | Medium | Union Find | |
| 0990 | Satisfiability of Equality Equations | C++ Python | O(n) | O(1) | Medium | Union Find | |
| 1042 | Flower Planting With No Adjacent | C++ Python | O(n) | O(n) | Easy | ||
| 1101 | The Earliest Moment When Everyone Become Friends | C++ Python | O(nlogn) | O(n) | Medium | π | Union Find |
| 1135 | Connecting Cities With Minimum Cost | C++ Python | O(nlogn) | O(n) | Medium | π | Union Find, Kruskal's Algorithm, MST |
| 1168 | Optimize Water Distribution in a Village | C++ Python | O(nlogn) | O(n) | Hard | π | Union Find |
| 1334 | Find the City With the Smallest Number of Neighbors at a Threshold Distance | C++ Python | O(n^3) | O(n^2) | Medium | Floyd-Warshall Algorithm |
|
| 1361 | Validate Binary Tree Nodes | C++ Python | O(n) | O(n) | Medium | DFS, Tree |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0587 | Erect the Fence | C++ Python | O(nlogn) | O(n) | Hard | Convex Hull, Monotone Chain |
|
| 0892 | Surface Area of 3D Shapes | C++ Python | O(n^2) | O(1) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0874 | Walking Robot Simulation | C++ Python | O(n + k) | O(k) | Easy | ||
| 1138 | Alphabet Board Path | C++ Python | O(n) | O(1) | Medium | ||
| 1243 | Array Transformation | C++ Python | O(n^2) | O(n) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0146 | LRU Cache | C++ Python | O(1) | O(k) | Hard | ||
| 0225 | Implement Stack using Queues | C++ Python | push: O(n), pop: O(1), top: O(1) | O(n) | Easy | ||
| 0284 | Peeking Iterator | C++ Python | O(1) | O(1) | Medium | ||
| 0348 | Design Tic-Tac-Toe | C++ Python | O(1) | O(n^2) | Medium | π | |
| 0353 | Design Snake Game | C++ Python | O(1) | O(s) | Medium | π | Deque |
| 0355 | Design Twitter | C++ Python | O(klogu) | O(t + f) | Medium | LintCode | Heap |
| 0359 | Logger Rate Limiter | C++ Python | O(1), amortized | O(k) | Easy | π | Deque |
| 0362 | Design Hit Counter | C++ Python | O(1), amortized | O(k) | Medium | π | Deque |
| 0379 | Design Phone Directory | C++ Python | O(1) | O(n) | Medium | π | |
| 0380 | Insert Delete GetRandom O(1) | C++ Python | O(1) | O(n) | Hard | ||
| 0381 | Insert Delete GetRandom O(1) - Duplicates allowed | C++ Python | O(1) | O(n) | Hard | ||
| 0432 | All O`one Data Structure | C++ Python | O(1) | O(n) | Hard | ||
| 0460 | LFU Cache | C++ Python | O(1) | O(k) | Hard | ||
| 0535 | Encode and Decode TinyURL | C++ Python | O(1) | O(n) | Medium | ||
| 0588 | Design In-Memory File System | C++ Python | ls: O(l + klogk) mkdir: O(l) addContentToFile: O(l + c) readContentFromFile: O(l + c) |
O(n + s) | Hard | π | |
| 0604 | Design Compressed String Iterator | C++ Python | O(1) | O(1) | Easy | π | |
| 0631 | Design Excel Sum Formula | C++ Python | set: O((r * c)^2) get: O(1) sum: O((r * c)^2) |
O(r * c) | Hard | π | |
| 0635 | Design Log Storage System | C++ Python | put: O(1) retrieve: O(n + dlogd) |
O(n) | Medium | π | |
| 0642 | Design Search Autocomplete System | C++ Python | O(p^2) | O(p * t + s) | Hard | π | |
| 0715 | Range Module | C++ Python | add: O(n) remove: O(n) query: O(logn) |
O(n) | Hard | ||
| 0716 | Max Stack | C++ Python | push: O(logn) pop: O(logn) popMax: O(logn) top: O(1) peekMax: O(1) |
O(n) | Easy | ||
| 0745 | Prefix and Suffix Search | C++ Python | ctor: O(w * l^2) search : O(p + s) |
O(t) | Hard | Trie | |
| 0900 | RLE Iterator | C++ Python | O(n) | O(1) | Medium | ||
| 1146 | Snapshot Array | C++ Python | set: O(1) get: O(logn) |
O(n) | Medium | ||
| 1166 | Design File System | C++ Python | create: O(n) get: O(n) |
O(n) | Medium | π | |
| 1172 | Dinner Plate Stacks | C++ Python | push: O(logn) pop: O(1), amortized popAtStack: (logn) |
O(n * c) | Hard | ||
| 1206 | Design Skiplist | C++ Python | O(logn), on average | O(n) | Hard | ||
| 1236 | Web Crawler | C++ Python | O(|V| + |E|) | O(|V|) | Medium | π | BFS, DFS |
| 1244 | Design A Leaderboard | C++ Python | ctor: O(1) add: O(1) top: O(n) reset: O(1) |
O(n) | Medium | ||
| 1268 | Search Suggestions System | C++ Python | ctor: O(n * l) suggest: O(l^2) |
O(t) | Medium | Trie | |
| 1286 | Iterator for Combination | C++ Python | O(k) | O(k) | Medium | Stack | |
| 1348 | Tweet Counts Per Frequency | C++ Python | add: O(logn) query: O(c) |
O(n) | Medium | ||
| 1352 | Product of the Last K Numbers | C++ Python | ctor: O(1) add: O(1) get: O(1) |
O(n) | Medium | ||
| 1357 | Apply Discount Every n Orders | C++ Python | ctor: O(m) getBill: O(p) |
O(m) | Medium | ||
| 1381 | Design a Stack With Increment Operation | C++ Python | ctor: O(1) push: O(1) pop: O(1) increment: O(1) |
O(n) | Medium | ||
| 1396 | Design Underground System | C++ Python | ctor: O(1) checkin: O(1) checkout: O(1) getaverage: O(1) |
O(n) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 1114 | Print in Order | C++ Python | O(n) | O(1) | Easy | ||
| 1115 | Print FooBar Alternately | C++ Python | O(n) | O(1) | Medium | ||
| 1116 | Print Zero Even Odd | C++ Python | O(n) | O(1) | Medium | ||
| 1117 | Building H2O | C++ Python | O(n) | O(1) | Hard | ||
| 1188 | Design Bounded Blocking Queue | C++ Python | O(n) | O(1) | Medium | π | |
| 1195 | Fizz Buzz Multithreaded | C++ Python | O(n) | O(1) | Medium | ||
| 1226 | The Dining Philosophers | C++ Python | O(n) | O(1) | Medium | ||
| 1242 | Web Crawler Multithreaded | C++ Python | O(|V| + |E|) | O(|V|) | Medium | π | |
| 1279 | Traffic Light Controlled Intersection | C++ Python | O(n) | O(1) | Easy | π |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0175 | Combine Two Tables | MySQL | O(m + n) | O(m + n) | Easy | ||
| 0176 | Second Highest Salary | MySQL | O(n) | O(1) | Easy | ||
| 0177 | Nth Highest Salary | MySQL | O(n^2) | O(n) | Medium | ||
| 0178 | Rank Scores | MySQL | O(n^2) | O(n) | Medium | ||
| 0180 | Consecutive Numbers | MySQL | O(n) | O(n) | Medium | ||
| 0181 | Employees Earning More Than Their Managers | MySQL | O(n^2) | O(1) | Easy | ||
| 0182 | Duplicate Emails | MySQL | O(n^2) | O(n) | Easy | ||
| 0183 | Customers Who Never Order | MySQL | O(n^2) | O(1) | Easy | ||
| 0184 | Department Highest Salary | MySQL | O(n^2) | O(n) | Medium | ||
| 0185 | Department Top Three Salaries | MySQL | O(n^2) | O(n) | Hard | ||
| 0196 | Delete Duplicate Emails | MySQL | O(n^2) | O(n) | Easy | ||
| 0197 | Rising Temperature | MySQL | O(n^2) | O(n) | Easy | ||
| 0262 | Trips and Users | MySQL | O((t * u) + tlogt) | O(t) | Hard | ||
| 0511 | Game Play Analysis I | MySQL | O(n) | O(n) | Easy | π | |
| 0512 | Game Play Analysis II | MySQL | O(n) | O(n) | Easy | π | |
| 0534 | Game Play Analysis III | MySQL | O(nlogn) | O(n) | Medium | π | |
| 0550 | Game Play Analysis IV | MySQL | O(n) | O(n) | Medium | π | |
| 1045 | Customers Who Bought All Products | MySQL | O(n + k) | O(n + k) | Medium | π | |
| 1050 | Actors and Directors Who Cooperated At Least Three Times | MySQL | O(n) | O(n) | Easy | π | |
| 1068 | Product Sales Analysis I | MySQL | O(m + n) | O(m + n) | Easy | π | |
| 1069 | Product Sales Analysis II | MySQL | O(n) | O(n) | Easy | π | |
| 1070 | Product Sales Analysis III | MySQL | O(n) | O(n) | Medium | π | |
| 1075 | Project Employees I | MySQL | O(m + n) | O(m + n) | Easy | π | |
| 1076 | Project Employees II | MySQL | O(n) | O(n) | Easy | π | |
| 1077 | Project Employees III | MySQL | O((m + n)^2) | O(m + n) | Medium | π | |
| 1082 | Sales Analysis I | MySQL | O(n) | O(n) | Easy | π | |
| 1083 | Sales Analysis II | MySQL | O(m + n) | O(m + n) | Easy | π | |
| 1084 | Sales Analysis III | MySQL | O(m + n) | O(m + n) | Easy | π | |
| 1097 | Game Play Analysis V | MySQL | O(n^2) | O(n) | Hard | π | |
| 1098 | Unpopular Books | MySQL | O(m + n) | O(n) | Medium | π | |
| 1107 | New Users Daily Count | MySQL | O(n) | O(n) | Medium | π | |
| 1112 | Highest Grade For Each Student | MySQL | O(nlogn) | O(n) | Medium | π | |
| 1113 | Reported Posts | MySQL | O(n) | O(n) | Easy | π | |
| 1126 | Active Businesses | MySQL | O(n) | O(n) | Medium | π | |
| 1127 | User Purchase Platform | MySQL | O(n) | O(n) | Hard | π | |
| 1132 | Reported Posts II | MySQL | O(m + n) | O(n) | Medium | π | |
| 1141 | User Activity for the Past 30 Days I | MySQL | O(n) | O(n) | Easy | π | |
| 1142 | User Activity for the Past 30 Days II | MySQL | O(n) | O(n) | Easy | π | |
| 1148 | Article Views I | MySQL | O(nlogn) | O(n) | Easy | π | |
| 1149 | Article Views II | MySQL | O(nlogn) | O(n) | Medium | π | |
| 1158 | Market Analysis I | MySQL | O(m + n) | O(m + n) | Medium | π | |
| 1159 | Market Analysis II | MySQL | O(m + n) | O(m + n) | Hard | π | |
| 1164 | Product Price at a Given Date | MySQL | O(mlogn) | O(m) | Medium | π | |
| 1173 | Immediate Food Delivery I | MySQL | O(n) | O(1) | Easy | π | |
| 1174 | Immediate Food Delivery II | MySQL | O(n) | O(m) | Medium | π | |
| 1179 | Reformat Department Table | MySQL | O(n) | O(n) | Easy | π | |
| 1193 | Monthly Transactions I | MySQL | O(n) | O(n) | Medium | π | |
| 1194 | Tournament Winners | MySQL | O(m + n + nlogn) | O(m + n) | Hard | π | |
| 1204 | Last Person to Fit in the Elevator | MySQL | O(nlogn) | O(n) | Medium | π | |
| 1205 | Monthly Transactions II | MySQL | O(n) | O(n) | Medium | π | |
| 1211 | Queries Quality and Percentage | MySQL | O(n) | O(n) | Easy | ||
| 1212 | Team Scores in Football Tournament | MySQL | O(nlogn) | O(n) | Medium | ||
| 1225 | Report Contiguous Dates | MySQL | O(nlogn) | O(n) | Hard | π | |
| 1241 | Number of Comments per Post | MySQL | O(n) | O(n) | Easy | π | |
| 1251 | Average Selling Price | MySQL | O(n) | O(n) | Easy | π | |
| 1264 | Page Recommendations | MySQL | O(m + n) | O(m) | Medium | π | |
| 1270 | All People Report to the Given Manager | MySQL | O(n) | O(n) | Medium | π | |
| 1280 | Students and Examinations | MySQL | O((m * n) * log(m * n)) | O(m * n) | Easy | π | |
| 1285 | Find the Start and End Number of Continuous Ranges | MySQL | O(n) | O(n) | Medium | π | |
| 1294 | Weather Type in Each Country | MySQL | O(m + n) | O(n) | Easy | π | |
| 1303 | Find the Team Size | MySQL | O(n) | O(n) | Easy | π | |
| 1308 | Running Total for Different Genders | MySQL | O(nlogn) | O(n) | Medium | π | |
| 1321 | Restaurant Growth | MySQL | O(n^2) | O(n) | Medium | π | |
| 1322 | Ads Performance | MySQL | O(nlogn) | O(n) | Easy | π | |
| 1327 | List the Products Ordered in a Period | MySQL | O(n) | O(n) | Easy | π | |
| 1336 | Number of Transactions per Visit | MySQL | O(m + n) | O(m + n) | Medium | π | |
| 1341 | Movie Rating | MySQL | O(nlogn) | O(n) | Medium | π | |
| 1350 | Students With Invalid Departments | MySQL | O(n) | O(n) | Easy | π | |
| 1355 | Activity Participants | MySQL | O(n) | O(n) | Medium | π | |
| 1364 | Number of Trusted Contacts of a Customer | MySQL | O(n + m + l + nlogn) | O(n + m + l) | Medium | π | |
| 1369 | Get the Second Most Recent Activity | MySQL | O(nlogn) | O(n) | Hard | π | |
| 1378 | Replace Employee ID With The Unique Identifier | MySQL | O(n) | O(n) | Easy | π | |
| 1384 | Total Sales Amount by Year | MySQL | O(nlogn) | O(n) | Hard | π | |
| 1393 | Capital Gain/Loss | MySQL | O(n) | O(n) | Medium | π |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 0192 | Word Frequency | Shell | O(n) | O(k) | Medium | ||
| 0193 | Valid Phone Numbers | Shell | O(n) | O(1) | Easy | ||
| 0194 | Transpose File | Shell | O(n^2) | O(n^2) | Medium | ||
| 0195 | Tenth Line | Shell | O(n) | O(1) | Easy |