About this platform
DSA Patterns is a pattern-first learning site for coding interviews. The goal is not to mirror every LeetCode problem. It is to help you recognize the patterns that show up again and again, apply a reliable template, and understand trade-offs between approaches.
What we optimize for
- Pattern recognition, not volume. Name the technique in about 90 seconds, then practice a small set that actually trains that skill.
- Reusable templates. Interview-speed skeletons in TypeScript, Python, and C# you can adapt under pressure, not one-off snippets.
- Trade-offs when they matter. Multiple approaches only when complexity, memory, or edge cases genuinely differ (not duplicate code for its own sake).
- Honest sourcing. Every write-up restates the problem and cites LeetCode by number, title, and link.
- Local progress, no account. Mark complete, notes, confidence, and reviews stay in your browser (export/import when you want a backup).
- Solutions that run. Published approaches are checked across C#, TypeScript, and Python against the same fixtures.
Curriculum spine
The catalog is ordered by interview density: foundations (window, pointers, binary search, hashing, prefix sums), core interview patterns (stacks, heaps, graphs, trees, DP…), then advanced/expert modes (union-find, topo, segment trees, bitmask DP…). Full guides include multi-language templates, mental models, and write-up paths; some advanced patterns are still stubs. On-site write-ups cover 211 problems (TypeScript, Python, and C#, checked by the solution test suite).
Source & fair use
- Problems are restated in our own words for teaching. We do not copy LeetCode premium statements or official editorials.
- Each write-up includes a Source: LeetCode #N citation and a “Practice on LeetCode” link.
- Solutions and explanations are original teaching material for this site.
- LeetCode is a trademark of its respective owners; this project is not affiliated with LeetCode.
Tech (for contributors)
Static site: Astro, MDX, Tailwind, React islands; progress stays in the browser (IndexedDB). English routes are unprefixed (/patterns); Turkish lives under /tr/…. UI and pattern guides ship in both locales. Most problem write-ups are English; Turkish write-ups are growing, and missing ones fall back to English.