Step 1: Basics (0/31)
Step 2: Sorting (5/7)
Step 3: Array Problems (23/40)
Step 4: Binary Search (10/32)
Step 5: Strings (8/15)
Step 6: Linked Lists (16/31)
Step 7: Recursion (0/25)
Step 8: Bit Manipulation (0/18)
Step 9: Stacks and Queues (0/30)
Step 10: Sliding Window & Two Pointer (1/12)
Step 11: Heaps (0/17)
Step 12: Greedy Algorithms (0/16)
Step 13: Binary Trees (6/39)
Step 14: Binary Search Trees (0/16)
Step 15: Graphs (0/54)
Step 16: Dynamic Programming (1/56)
Step 17: Tries (0/7)
Step 18: More Strings (0/9)