forked fromkamyu104/LeetCode-Solutions
- Notifications
You must be signed in to change notification settings - Fork0
(Weekly Update) Python / C++11 Solutions of All 1420 LeetCode Problems
License
NotificationsYou must be signed in to change notification settings
jaswantcoder/LeetCode-Solutions
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
- 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 myLintCode repository.
- For more challenging problem solutions, you can also see myGoogleCodeJam,FacebookHackerCup repositories.
- Hope you enjoy the journey of learning data structures and algorithms.
- Notes: "🔒" means your subscription ofLeetCode 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 ofMinimum 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 ofSort 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 ofRearrange 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 ofMeeting 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 |
|---|---|---|---|---|---|---|---|
| 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 |
|---|---|---|---|---|---|---|---|
| 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 |
|---|---|---|---|---|---|---|---|
| 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 |
About
(Weekly Update) Python / C++11 Solutions of All 1420 LeetCode Problems
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Languages
- C++53.9%
- Python44.9%
- TSQL0.8%
- Java0.3%
- Go0.1%
- Shell0.0%