Competitive-programming
The current repository contains a set of learning resources, and coding challenges solutions that I have implemented as result of my training, to ace a Big Tech interview that allowed me to receive an offer at Microsoft for a SWE intern role. NOT everything you may read in this repository is the overall knowledge requierd during an algorithms and data-structures round, but I have started from zero, just like you, and from zero to half-hero, almost everything produced or needed has been shared in this repository.
Technologies used
Get mentored by me
Index of content
- Structure of the repository
- Platforms for Training
- When contribute
- How to contribute
- Connect with me
Structure of the Repository
Folder | Content |
---|---|
Lectures (Algorithm and data-structures) | Notes about Algorithm And Data Structures |
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
Best Platforms for training
How to contribute
- Fork the repository
- Do the desired changes (add/delete/modify)
- Make a pull request
When contribute
- 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
I appreciate any feedback
Constructive criticisms or code reviews of any kind are very much welcome.
If you have any questions about the solutions you can find here, feel free to contact me at: [email protected]
- π« How to reach me: You can find me also on Linkedln or πMail me at [email protected]
Social Media
Support me
Incoming Materials
- 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 start, to get help the project to gain more visibility and contributions