├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Mahbuba Mim 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21 | IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # If you want to solve problems based on the patterns most frequently asked in tech company interviews, then "Blind 75 & NeetCode 150" are for you. 2 | 3 | 1. Blind 75: List of the 75 essential LeetCode algorithms problems.(Curated by Yangshun, a former Meta staff engineer) 4 | Easy: 19, 5 | Medium: 49, 6 | Hard: 7. 7 | 2. NeetCode 150: Expands on Blind 75 with 75 more problems. 8 | Easy: 28, 9 | Medium: 101, 10 | Hard: 21. 11 | 12 | "Blind 75" vs "NeetCode 150" -> Blind 75 offers a solid foundation with essential LeetCode problems But "NeetCode 150" expands this palette, covering a wider array of patterns and topics! 13 | 14 | Recommended YouTube Channel for solving tutorials: "NeetCode" 15 | 16 | Standard Time for Solving LeetCode Problems: 17 | 1. Easy: 15-20 minutes 18 | 2. Medium: 30 minutes 19 | 3. Hard: 40-60 minutes 20 | 21 | # DSA Topics and Problem Distribution: 22 | 23 | 1. Arrays & Hashing: NeetCode (9), Blind (8) 24 | 2. Two Pointers: NeetCode (5), Blind (3) 25 | 3. Sliding Window: NeetCode (6), Blind (4) 26 | 4. Stack: NeetCode (7), Blind (1) 27 | 5. Binary Search: NeetCode (7), Blind (2) 28 | 6. Linked List: NeetCode (11), Blind (6) 29 | 7. Trees: NeetCode (15), Blind (11) 30 | 8. Tries: NeetCode (3), Blind (3) 31 | 9. Heap / Priority Queue: NeetCode (7), Blind (1) 32 | 10. Backtracking: NeetCode (9), Blind (2) 33 | 11. Graphs: NeetCode (13), Blind (6) 34 | 12. Advanced Graphs: NeetCode (6), Blind (1) 35 | 13. 1-D Dp: NeetCode (12), Blind (10) 36 | 14. 2-D Dp: NeetCode (11), Blind (2) 37 | 15. Greedy: NeetCode (8), Blind (2) 38 | 16. Intervals: NeetCode (6), Blind (5) 39 | 17. Math & Geometry: NeetCode (8), Blind (3) 40 | 18. Bit Manipulation: NeetCode (7), Blind (5) 41 | 42 | -> Here the problem topics are listed along with the number of problems in each topic. For example, there are 9 problems in Arrays & Hashing where Blind has 8, but NeetCode has 9, that means there are 8 common problems. 43 | 44 | 45 | Important DSA: BFS & DFS, Sliding window, Top K elements, Linked list, Stack, Queue, DP, Array, String, Searching, Sorting, Backtracking, Trie, Bit manipulation, Graph, BST. 46 | 47 | 48 | # Some of the Most Important patterns that are frequently asked in Interviews and OAs: 49 | 50 | 1. Sliding Window (Fixed sized window and variable sized window questions on array and string) 51 | 2. Island problems(DFS/BFS or different traversals on grid) 52 | 3. Two Pointers, Fast and Slow pointer 53 | 4. Merge Intervals 54 | 5. Cyclic Sort(Very important) 55 | 6. DFS and BFS 56 | 7. Two Heaps Problems(Find median in a stream problem) 57 | 8. Subset Problems 58 | 9. Subarray/Substring problems using Hashing 59 | 10. Binary Search 60 | 11. Bitwise XOR(Common asked question in many OAs) 61 | 12. Top k elements 62 | 13. K way merge 63 | 14. Topological Sort 64 | 15. Bit Manipulation 65 | 16. Number Theory 66 | 67 | 68 | # Best Books for DSA 69 | 1. Data Structures & Algorithms: 70 | 71 | Computer Science Distilled - https://amzn.to/39jYZ0S​ 72 | 73 | Grokking Algorithms - https://amzn.to/2JcBrjS​ 74 | 75 | Introduction to Algorithms - https://amzn.to/2V03JRb​ 76 | 77 | Elements of Programming Interviews (Python) - https://amzn.to/35XPQJw​ 78 | 79 | Elements of Programming Interviews (Java) - https://amzn.to/374W5KT​ 80 | 81 | 2. Software Engineering & Architecture: 82 | 83 | Clean Code - https://amzn.to/3nHNtAC​ 84 | 85 | Clean Architecture - https://amzn.to/3kZ7UqR​ 86 | 87 | Refactoring - https://amzn.to/377VXdM​ 88 | 89 | The Productive Programmer - https://amzn.to/33aMeSE​ 90 | 91 | Pragmatic Thinking & Learning - https://amzn.to/2J5IfzM​ 92 | 93 | 3. Distributed Systems: 94 | 95 | Web Scalability for Startup Engineers - https://amzn.to/39c55QV​ 96 | 97 | Designing Data Intensive Applications - https://amzn.to/3fxgOLm​ 98 | 99 | Understanding Distributed Systems - https://amzn.to/3cjChr5​ 100 | 101 | Software Engineering at Google - https://amzn.to/3rfJc8L​ 102 | 103 | Building Microservices - https://amzn.to/2UUPsFi​ 104 | 105 | --------------------------------------------------------------------------------