Free & beginner-friendly · by
Srujan Chidarla
Learn DSA one stage at a time
A structured path from arrays to dynamic programming — hand-picked problems, a walkthrough video for nearly every one, and real interview tags. The progress numbers here are Srujan's, learning in public.
- curated problems
- 199
- problemscurated problems
- levels, easy → DP
- 16
- levelslevels, easy → DP
- video walkthroughs
- 263+
- videosvideo walkthroughs
- companies in interview data
- 419
- companiescompanies in interview data
Step 00 · Before DSA
Can you already write a little code?
Loops, if/else, lists and functions in any one language: that's all DSA needs. If not yet, three free crash courses get you there.
How do you want to start?
Pick one. No account needed: this device remembers your choice and progress, and the site shapes itself around them. Sign up any time to keep it on every device and get reminders.
- I'm new to DSAStart with the basics, coded right here. Where are you?Never codedKnow a languageKnow a bit, check me
- I have interviews coming upTell us the companies and the date. We'll size a day-by-day plan and track your pace.Make my plan
- I just want to practiceOne problem a day, with reviews after 1 day, 1 week and 1 month so it sticks. No setup.Today's problem
Step 00 · Before DSA
Can you already write a little code?
Loops, if/else, lists and functions in any one language: that's all DSA needs. If not yet, three free crash courses get you there.
Before you start · learn the topic
~10 minutesWarm up for Two Sum: Arrays & Strings
Arrays and strings are the default input shape on LeetCode. If you can scan a list, count characters, and use a hash map for lookups, the later patterns feel much easier.
In the wild · Caches and duplicate detection: A hash map answers “have I seen this before?” in one step. It's how apps cache results, and how a photo app spots the same picture uploaded twice.
Make sure you know
- →Index into a list and walk left → right practise ✎
- →Count frequencies with a hash map practise ✎
- →Use a set to check “have I seen this?” practise ✎
- →Build a new string or array from an answer practise ✎
Tip: Say the brute force out loud first, then ask “what am I looking up twice?”
Step 00 · Before DSA
Can you already write a little code?
Loops, if/else, lists and functions in any one language: that's all DSA needs. If not yet, three free crash courses get you there.
Learning path
Stages to learn DSA
For anyone learning DSA: start with arrays and strings, then take on the patterns one at a time, or jump to any stage (none are locked). Expand a stage for the why, what to learn, and starter problems — open one for its walkthrough, a step-by-step visual and the companies that ask it.
Every level, with your progress: the roadmap →Srujan's recently solved
107 in Srujan's journal
- 76Find the Index of the First Occurrence in a String
LeetCode (28) · KMP (Prefix Function)+9EasyO(n + m)
- 75Two Sum II - Input Array Is Sorted
LeetCode (167) · Two Pointers on a Sorted Array+9MediumO(n)
- 74Maximum Average Subarray I
LeetCode (643) · Fixed-Size Sliding Window+7EasyO(n)
- 73Count Valid Substrings I
LeetCode · Last Bad PositionMediumO(n)
- 72Remove Elements by Type and Color
LeetCode (4103) · Run Compression + StackMediumO(n)
- 71Is Subsequence
LeetCode (392) · Two Pointers+9EasyO(n + m)
6 of 107
Ready when you are
Stage 1 starts with Two Sum.
Pick a language, watch the concept video, then solve it yourself. Come back tomorrow for the next one.