A curated collection of LeetCode problems organized by algorithmic patterns, with TypeScript solutions, time/space complexity analysis, and automated tests.
This repository is being built incrementally as I progress through LeetCode problems, and aims to serve as a reference point for common techniques as well as demonstrate a depth of understanding of a selection of fundamental problems/patterns.
To demonstrate my reasoning process, several problems have both a "brute-force" solution, which is often the more obvious yet slower approach, and an optimal, more time-efficient solution, which requires drawing on common techniques associated with the pattern.
As I progress through the problem sets, a separate README is completed for each pattern, discussing core ideas, common pitfalls, and common complexity patterns.
LeetCode profile: https://leetcode.com/alex_small739
Problems in this repository are organized into the following 8 fundamental algorithmic patterns:
✅ - Complete
⏳ - In Progress / Not Started
- ✅ Arrays & Hashing
- ⏳ Two Pointers & Sliding Window
- ⏳ Binary Search & Sorting
- ⏳ Linked Lists
- ⏳ Trees & Graphs
- ⏳ Tries & Heaps
- ⏳ Dynamic Programming
- ⏳ Backtracking