Python DSA — Intermediate
Step up to real interview problems. Arrays get trickier, you meet hash maps properly, and you start working with linked lists. Each problem introduces one new idea.
Hash map for O(n) complement lookup — the most common interview problem. Every intermediate path starts here.
Set for O(1) seen-check — upgrade from the basic array scan you did in beginner.
Counter comparison — upgrade from is-anagram-basic. Now use Python Counter and sort comparison both ways.
Two pointers from both ends — your first proper two-pointer problem. Clean and transferable to arrays.
XOR trick vs sum formula — two approaches. Learn XOR as an alternative O(1) space technique.
XOR all elements — any number XORed with itself cancels. Elegant O(n) time, O(1) space.
Boyer-Moore voting algorithm — a single-pass counter trick. First algorithm that feels like a real insight.
In-place two-pointer write — slow pointer tracks the next write position. Core in-place array pattern.
Two pointers from both ends filling result from back — applying two pointers to a new shape of problem.
Track running min + compute max profit in one pass — Kadane's intuition applied to finance problems.
Stack for bracket matching — your introduction to stack data structure. Push open, pop and verify on close.
Three-pointer node reversal (prev, curr, next) — the most fundamental linked list operation.
Floyd's slow/fast pointer — if they meet, there's a cycle. Your first pointer-chasing algorithm.
Slow/fast pointer to find midpoint in one pass — the same Floyd trick applied to a different goal.
Dummy head node pattern — simplifies edge cases when the head itself might be removed.
Merge two chains with a dummy head — builds toward merge sort and merge-k-sorted-lists.
Prefix sum from left + total sum minus prefix from right — prefix sums applied to balance problems.
Sliding counter reset on zero — clean warm-up for the harder Max Consecutive Ones III with a budget.
Prefix and suffix product arrays — no division allowed. Elegant two-pass O(n) with O(1) extra space.
Sorted string as hash map key — grouping by a derived key. A pattern you will see in many bucket problems.