Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Deploy MkDocs to GitHub Pages

on:
push:
branches:
- main
paths:
- 'docs/**'
- 'mkdocs.yml'
- '.github/workflows/docs.yml'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for git-revision-date-localized plugin

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install MkDocs and plugins
run: |
python -m pip install --upgrade pip
pip install mkdocs mkdocs-material mkdocs-mermaid2-plugin mkdocs-awesome-pages-plugin mkdocs-git-revision-date-localized-plugin

- name: Build MkDocs site
run: mkdocs build --clean

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: site

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
52 changes: 52 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Python Interview Algorithms Workbook

[![CI](https://github.com/ianlintner/python_dsa/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ianlintner/python_dsa/actions/workflows/ci.yml)

Clean, idiomatic Python implementations for senior/staff-level interview prep with complexity notes, pitfalls, demos, and tests.

![Project overview screenshot](assets/visual.png)

## Quick Navigation

- [Engineering Study Plan](ENGINEERING_STUDY_PLAN.md) - Structured study guide from Intern to Principal level
- [Algorithms Portfolio](ALGORITHMS_PORTFOLIO.md) - Complete portfolio of algorithm implementations
- [Learning Path](LEARNING_PATH.md) - 2-3 week structured learning plan with checkpoints
- [Consistency Models](CONSISTENCY_MODELS.md) - Distributed systems consistency patterns
- [System Design Guide](INTERVIEW_SYSTEM_DESIGN.md) - Interview system design preparation
- [NeetCode Top 100](NEETCODE_TOP100.md) - Must-know LeetCode problems

## Modules Overview

- **algorithms/sorting** - Comparison (merge, quick, heap, insertion, selection, bubble) and non-comparison (counting, radix)
- **algorithms/searching** - Binary search family, advanced search, selection algorithms
- **data_structures** - Union-Find (DSU), Trie, LRU/LFU caches, Fenwick tree, Segment tree
- **graphs** - BFS/DFS, Topological sort, Dijkstra, A*, Bellman-Ford, Floyd-Warshall, MST, SCC
- **dp** - Fibonacci, coin change, LIS, knapsack, edit distance, bitmask TSP, LCS
- **strings** - KMP, Rabin-Karp, Z-algorithm, Manacher, suffix array/LCP
- **math_utils** - Sieve, GCD/LCM, modular arithmetic, prefix sums
- **patterns** - Sliding window, monotonic stack/queue, two pointers, backtracking
- **systems/concurrency** - Reservoir sampling, rate limiters, consensus notes

## Getting Started

Install (editable) and run tests:

```bash
python -m pip install -U pip
python -m pip install -e .
pytest -q
```

Run demos:

```bash
python src/main.py --list
python src/main.py --demo sorting.merge_sort
python src/main.py --demo searching.binary_search
python src/main.py --demo dp.lcs
python src/main.py --demo graphs.scc
```

## Repository

For the full source code and contributions, visit the [GitHub repository](https://github.com/ianlintner/python_dsa).
18 changes: 12 additions & 6 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,15 @@ markdown_extensions:
- pymdownx.tilde
nav:
- Home: index.md
- Engineering Study Plan: docs/ENGINEERING_STUDY_PLAN.md
- Algorithms Portfolio: docs/ALGORITHMS_PORTFOLIO.md
- Learning Path: docs/LEARNING_PATH.md
- Consistency Models: docs/CONSISTENCY_MODELS.md
- System Design Guide: docs/INTERVIEW_SYSTEM_DESIGN.md
- NeetCode Top 100: docs/NEETCODE_TOP100.md
- Engineering Study Plan: ENGINEERING_STUDY_PLAN.md
- Algorithms Portfolio: ALGORITHMS_PORTFOLIO.md
- Learning Path: LEARNING_PATH.md
- Consistency Models: CONSISTENCY_MODELS.md
- System Design Guide: INTERVIEW_SYSTEM_DESIGN.md
- NeetCode Top 100: NEETCODE_TOP100.md
- System Design Interviews:
- AI System Design Glossary: system_design_interviews/ai_system_design_glossary.md
- Bitly Clone: system_design_interviews/bitly_clone.md
- Facebook Clone: system_design_interviews/facebook_clone.md
- Twitter Clone: system_design_interviews/twitter_clone.md
- WhatsApp Clone: system_design_interviews/whatsapp_clone.md
Loading