Data Structures & Algorithms • Journey • 2025

My DSA Journey So Far

A practical snapshot of fundamentals I use to write faster, leaner solutions — with where I’m heading next.

TL;DR: Prefer clarity first, then optimize. Know your constraints, pick the right structure, and control complexity: aim for O(n) over O(n²), O(log n) over O(n), and constant‑factor wins only after profiling.

Explore my DSA solutions on GitHub

Browse solved LeetCode problems, approaches, and notes. Contributions and feedback are welcome.

DSA-leetcode on GitHub

📦 Arrays

Contiguous memory with O(1) indexing; the workhorse for iteration patterns.

🔠 Strings

Arrays of characters with domain‑specific tricks for search and comparison.

🔁 Recursion & Recurrence

Decompose problems and formalize state transitions; the basis for divide‑and‑conquer and DP.

🔦 Bit Manipulation

Compact, fast operations for set logic and parity tricks.

🗂️ Linked Lists

Pointer‑based sequences with O(1) head/tail ops when tracked; great for dynamic changes.

🔀 Sorting

Organizing data enables simpler algorithms and faster queries.

🔍 Binary Search

Halve the search space with a monotonic predicate; more than finding indices.

📚 Stack & Queue

Abstract types with distinct traversal and scheduling semantics.

🌟 Why DSA Matters

What’s Next