You did it!
You now know the core toolkit: arrays, two pointers, sliding windows, hashing, recursion, searching, sorting, linked lists, stacks, queues, trees, BSTs, heaps, graphs, greedy, backtracking and dynamic programming. That is exactly what most coding interviews test.
Practise little and often
- Solve one or two problems a day rather than ten on a Sunday.
- Practise by pattern: do five sliding-window problems in a row, then five BFS problems.
- When stuck for 30 minutes, read a solution – then close it and write it yourself the next day.
- Keep a notebook of mistakes and tricks.
Where to practise
| Site | Good for |
|---|---|
| LeetCode | interview-style problems, sorted by topic and company |
| HackerRank | gentle practice tracks, certificates |
| Codeforces / CodeChef | timed contests, competitive programming |
| Our Python Labs | more hands-on practice right here in the browser |
Topics to explore next
- Tries (prefix trees) for autocomplete
- Segment trees and Fenwick trees for fast range updates and queries
- Bit manipulation tricks
- Minimum spanning trees (Kruskal's and Prim's algorithms)
- Advanced DP: on trees, on bitmasks, on intervals
- String algorithms: KMP, rolling hashes
Remember: Being good at DSA isn't about remembering every algorithm. It's about spotting the pattern, choosing the right tool, and checking the Big-O. Keep practising and it becomes natural.