LeetCode Practice Map: Patterns Before Problem Counts

A problem count is a vanity metric unless it improves pattern recognition. This list organizes practice by reusable technique and records what should be learned from each problem.

Arrays and hashing

Problem Pattern Review focus
Two Sum Hash lookup Time-space trade-off
Contains Duplicate Set membership Early exit
Valid Anagram Frequency counting Character domain
Group Anagrams Canonical keys Hashable representation
Top K Frequent Elements Bucket/heap Selecting top K

Two pointers

Problem Review focus
Container With Most Water Why moving the shorter wall is safe
3Sum Sorting, duplicate handling, pointer movement
Remove Duplicates from Sorted Array Read/write pointers

Sliding window

Problem Review focus
Longest Substring Without Repeating Characters Maintaining a valid window
Minimum Window Substring Required counts and contraction
Problem Review focus
Binary Search Boundary invariant
Search in Rotated Sorted Array Identifying the sorted half

Linked lists

Problem Review focus
Reverse Linked List Pointer ownership
Linked List Cycle Fast and slow pointers
Merge Two Sorted Lists Sentinel node

SQL

Problem Review focus
Second Highest Salary NULL and ranking
Employees Earning More Than Their Managers Self join
Duplicate Emails GROUP BY and HAVING
Customers Who Never Order Anti-join

Review protocol

For each problem, record:

  1. the invariant that makes the solution correct;
  2. time and space complexity;
  3. the mistake made on the first attempt;
  4. one nearby variation;
  5. the next review date.

Re-solve from a blank editor. Reading an accepted solution and nodding is not practice; it is algorithm-themed entertainment.