The current repository contains a set of learning resources, and coding challenges solutions that I have implemented as result of my training, to pass a microsoft interview that allowed me to receive an offer at Microsoft for a SWE intern and full time role.
- 📫 How to reach me: You can find me also on Linkedln or 💌Mail me at davidepollicino2015@gmail.com
- Structure of the repository
- Platforms for Training
- When contribute
- How to contribute
- Connect with me
| Folder | Content |
|---|---|
| Lectures (Algorithm and data-structures) | Notes about Algorithm And Data Structures |
| OOP - fundamental knowledge | See resource |
| Must know algorithms checklist | Go to resources |
| System Design preparation | System design interview preparation |
| Readings material | Free e-books about Competitive Programming |
| Geeks For Geeks solutions | Geeks For GfG coding solutions |
| HackerRank solutions | My own HackerRank coding solutions |
| Codingblock solutions | My own Codingblock coding solutions |
| CodeSignal solutions | My own CodeSignal Solutions |
| CodeChef solutions | My own Codechef coding solutions |
| UVA | My own UVA Online Judge solutions |
| InterviewBit | My Interview Bit solutions |
| Leetcode solutions | My Leetcode solutions |
| learn_data_structures | Warm App coding examples to learn Data Structures |
## PLEASE If you need more material like this, nominate me as github start, to get help the project to gain more visibility and contributions
- Fork the repository
- Do the desired changes (add/delete/modify)
- Make a pull request
- If there is no solution to a problem in the main branch.
- If your solution is asymptotically faster than the one in the main branch.
- If your algorithm is of the same time complexity but with reduced code size. In this case, comment out the original solution and make a pull request with your solution.
- If you have another method of solving the problem which is asymptotically slower than the original method then, comment your solution in the main file and make a pull request.
- If you would like to make any positive change to the lectures content
- Prefix Sum
- Sliding Window Technique
- Binary search
- GCD of two numbers in LogN
- Sieve of Eratosthenes, Segmented Sieve
- Modular arithmetic
- Bit Manipulation
- Greedy Algorithms
- Two Pointers
- Kadane's Algorithm
- Meet in the Middle Algorithm
- Recursion
- Divide and Conquer
- Next Greater/Smaller Element using Stack
- Problems related to Parenthesis
- Backtracking
- Problems related to Constructive Algorithms
- Problems related to Heap
- Inclusion-Exclusion Principle
- Finding nCr and nPr for Queries
- Rabin Karp Algorithm
- Prefix Function
- KMP Algorithm
- Z-Function
- Manacher's Algorithm
- DFS/BFS Traversal in Graph/Tree
- Diameter of Tree
- Euler Tour of Tree
- Finding LCA using Euler Tour
- Finding LCA using Binary Lifting
- Distance between two nodes
- Subtree Problems
- Connected Components, Topological Sort, Cycle Detection, Bipartite Check-in Graph
- Dijkstra's Algorithm
- Bellman-Ford Algorithm
- Floyd Warshall Algorithm
- Bridges in Graph
- Prim's Algorithm
- 0/1 BFS
- Dynamic Programming, DP with Bitmask, DP on trees
- Disjoint Set
- Kruskal's Algorithm
- Fenwick Trees, Binary Lifting on Fenwick Tree
- Matrix Exponentiation
- Sqrt Exponentiation
- Segment Trees
- Lazy Propagation on Segment Trees
- Sprague/Grundy Theorem
- Heavy Light Decomposition
- FFT/NTT
If you need more material like this, nominate me as github star, to get help the project to gain more visibility and contributions
