A curated collection of common algorithm patterns and problem-solving templates for LeetCode and technical interviews. Each algorithm is written in Python and explained in detail using Jupyter Notebooks with clear markdown cells and code examples.
This repository contains:
- Well-documented
.ipynb
notebooks for each algorithm - Markdown cells explaining core concepts, use cases, and step-by-step logic
- Python code cells implementing the algorithm, ready to use and modify
- Clean, beginner-to-advanced explanations focused on real-world problem solving
- Sliding Window
- Two Pointers
- Binary Search
- Prefix Sum
- Fast & Slow Pointers (Cycle Detection)
- Backtracking
- Union-Find (Disjoint Set)
- BFS / DFS (Graph Traversals)
- Topological Sort (Kahn’s Algorithm)
- Heaps / Priority Queues
- Dynamic Programming (Memoization & Tabulation)
- 0/1 Knapsack
- Longest Common Subsequence (LCS)
- Longest Increasing Subsequence (LIS) ...and more coming soon!
- Engineers preparing for interviews at FAANG & startups
- CS students learning algorithm design
- Anyone who prefers visual, interactive explanation through Jupyter notebooks
- Clone the repo:
git clone https://github.com/your-username/leetcode-algorithms-notebooks.git
-
Open the notebooks with Jupyter:
-
Start exploring! Each file is a self-contained lesson on one algorithm.
Have a better implementation , idea or visualisation ? Feel free to fork and submit a pull request!
If you find this repo useful :
• Star the repo to help others discover it
• Share it with fellow coders
• Follow me on github or Linkedin for updates
Iason Daniil Zakynthinos Electrical & Computer Engineering student | Software & AI enthusiast