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 – plus the STL tools that make them quick to write in C++.
Practise little and often
- One or two problems a day beats ten on a Sunday.
- Practise by pattern: five sliding-window problems, then five BFS problems.
- Stuck for 30 minutes? Read a solution, then write it yourself the next day without looking.
- Learn to write BFS, DSU, Dijkstra and binary search from memory – they come up constantly.
Where to practise
| Site | Good for |
|---|---|
| LeetCode | interview problems by topic and company |
| Codeforces / CodeChef / AtCoder | timed contests – C++ is the most popular language there |
| CSES Problem Set | a classic, well-ordered list of algorithm problems |
| Our C++ Labs | more hands-on C++ practice in the browser |
Topics to explore next
- Tries for autocomplete and prefix search
- Segment trees and Fenwick (binary indexed) trees
- Bit manipulation and bitmask DP
- Minimum spanning trees (Kruskal with DSU, Prim with a heap)
- String algorithms: KMP, Z-function, hashing
- Number theory: GCD, sieve of Eratosthenes, modular arithmetic
Remember: DSA skill is spotting the pattern, choosing the right tool and checking the Big-O. Keep practising and it becomes natural.