Python Central HubSign in

CS 220IntermediateComputer science

Data Structures and Algorithms

Arrays to graphs, with visualisations and the interview patterns built on them.

153 lessons, not started

What you will learn

  • Choose the right data structure for a problem
  • Analyse time and space complexity
  • Recognise and apply the common problem patterns

Syllabus

153 lessons in 24 sections. Take them in order, or open any lesson directly.

  1. Phase 0: Start Here8 lessons
    1. Your DSA Interview Roadmap7 min
    2. How to Use This Course5 min
    3. The Sheets, Mapped3 min
    4. NeetCode 1501 min
    5. Blind 751 min
    6. LeetCode Top Interview 1501 min
    7. Striver's A2Z DSA Sheet1 min
    8. Striver's SDE Sheet1 min
  2. Phase 1: Foundations6 lessons
    1. Introduction to DSA with Python8 min, 3 exercises
    2. Setup for CP and Interviews10 min, 3 exercises
    3. Big-O and Complexity Deep Dive12 min, 3 exercises
    4. Recurrences and the Master Theorem16 min, 3 exercises
    5. Space Complexity and the Call Stack9 min, 3 exercises
    6. Python Recursion and Iterative Conversion12 min, 3 exercises
  3. Phase 2: Python for DSA and CP4 lessons
    1. Python Data Model Speed Reality12 min, 3 exercises
    2. stdlib Power Tools for DSA12 min, 3 exercises
    3. Fast IO and Beating TLE10 min, 3 exercises
    4. Python Idioms and Tricks for CP11 min, 3 exercises
  4. Phase 3: Core Data Structures12 lessons
    1. Arrays and Dynamic Arrays11 min, 3 exercises
    2. Strings10 min, 3 exercises
    3. Linked Lists11 min, 3 exercises
    4. Stacks and Queues10 min, 3 exercises
    5. Hash Tables11 min, 3 exercises
    6. Heaps and Priority Queues13 min, 3 exercises
    7. Binary Trees and BST11 min, 3 exercises
    8. Balanced Trees Overview14 min, 3 exercises
    9. Tries (Prefix Trees)13 min, 3 exercises
    10. Union-Find (Disjoint Set Union)13 min, 3 exercises
    11. Graph Representations14 min, 3 exercises
    12. Ordered Structures in Python11 min, 3 exercises
  5. Phase 4: Sorting and Searching7 lessons
    1. Elementary Sorts19 min, 3 exercises
    2. Merge Sort18 min, 3 exercises
    3. Quick Sort23 min, 3 exercises
    4. Heap Sort18 min, 3 exercises
    5. Counting, Radix, and Bucket Sort20 min, 3 exercises
    6. Python Sorting and Timsort21 min, 3 exercises
    7. Binary Search Template and Variants18 min, 3 exercises
  6. Phase 5: Patterns Arrays and Strings14 lessons
    1. Two Pointers14 min, 3 exercises
    2. Sliding Window17 min, 4 exercises
    3. Monotonic Deque13 min, 3 exercises
    4. Prefix Sums and Difference Arrays16 min, 3 exercises
    5. Prefix Sum with HashMap15 min, 3 exercises
    6. Kadane and Maximum Subarray14 min, 3 exercises
    7. Cyclic Sort14 min, 3 exercises
    8. Matrix and Grid Manipulation14 min, 3 exercises
    9. Monotonic Stack15 min, 3 exercises
    10. Stack Parsing and Expression Evaluation15 min, 3 exercises
    11. Frequency and Anagram Counting14 min, 3 exercises
    12. Palindrome Patterns14 min, 3 exercises
    13. Trie Patterns15 min, 3 exercises
    14. Dutch National Flag and In-place Partitioning8 min, 3 exercises
  7. Phase 6: Patterns Search and Selection6 lessons
    1. Binary Search on Rotated Arrays and Matrices26 min, 3 exercises
    2. Binary Search on Answer19 min, 3 exercises
    3. Quickselect and Nth Element20 min, 3 exercises
    4. Top K Elements23 min, 3 exercises
    5. Two Heaps and Running Median17 min, 3 exercises
    6. K-way Merge20 min, 3 exercises
  8. Phase 7: Patterns Intervals and Greedy5 lessons
    1. Merge Intervals15 min, 3 exercises
    2. Sweep Line and Event Counting16 min, 3 exercises
    3. Greedy Interval Scheduling17 min, 3 exercises
    4. Greedy Reachability and Jumps19 min, 3 exercises
    5. Sorting with Custom Comparators19 min, 3 exercises
  9. Phase 8: Patterns Linked Lists4 lessons
    1. Fast and Slow Pointers17 min, 3 exercises
    2. In-place Linked List Reversal14 min, 3 exercises
    3. Dummy Head Rewiring and Merging17 min, 3 exercises
    4. Copy Flatten and Reorder17 min, 3 exercises
  10. Phase 9: Patterns Trees8 lessons
    1. Tree DFS Paths and Sums17 min, 3 exercises
    2. Tree BFS and Level Order13 min, 4 exercises
    3. BST Patterns17 min, 3 exercises
    4. Lowest Common Ancestor17 min, 3 exercises
    5. Tree Construction from Traversals17 min, 3 exercises
    6. Serialize Compare and Subtree16 min, 3 exercises
    7. Morris Traversal and O(1)-Space Tree Walks13 min, 3 exercises
    8. Binary Lifting and Sparse LCA14 min, 3 exercises
  11. Phase 10: Patterns Graphs12 lessons
    1. Graph Traversal and Connected Components16 min, 3 exercises
    2. Breadth First Search14 min, 3 exercises
    3. Depth First Search15 min, 3 exercises
    4. Grid Traversal Islands and Flood Fill17 min, 3 exercises
    5. Multi-source BFS16 min, 3 exercises
    6. Topological Sort16 min, 3 exercises
    7. Cycle Detection and Bipartite Checking16 min, 3 exercises
    8. Union-Find Problem Patterns15 min, 3 exercises
    9. Shortest Paths: Dijkstra, Bellman-Ford, and Floyd-Warshall21 min, 3 exercises
    10. Eulerian Paths and Reconstruct Itinerary9 min, 3 exercises
    11. BFS and Dijkstra with Extra State10 min, 3 exercises
    12. 0-1 BFS and Deque Shortest Paths12 min, 3 exercises
  12. Phase 11: Recursion and Backtracking4 lessons
    1. Subsets and Combinations19 min, 3 exercises
    2. Permutations and Arrangements17 min, 3 exercises
    3. Backtracking17 min, 3 exercises
    4. Divide and Conquer21 min, 3 exercises
  13. Phase 12: Dynamic Programming12 lessons
    1. From Recursion to DP20 min, 3 exercises
    2. One Dimensional DP21 min, 3 exercises
    3. Two Dimensional DP and Knapsack20 min, 3 exercises
    4. Knapsack Variants and Subset Sum20 min, 3 exercises
    5. Classic DP: LIS, LCS, and Edit Distance17 min, 3 exercises
    6. DP on Grids and Intervals22 min, 3 exercises
    7. Bitmask and Tree DP22 min, 3 exercises
    8. DP on Stocks9 min, 3 exercises
    9. Partition DP10 min, 3 exercises
    10. String DP10 min, 3 exercises
    11. LIS Variants and Patience Sorting9 min, 3 exercises
    12. Digit DP13 min, 3 exercises
  14. Phase 13: Bit Manipulation and Math4 lessons
    1. Bit Manipulation Tricks23 min, 3 exercises
    2. Bitwise XOR Patterns20 min, 3 exercises
    3. Number Theory for Competitive Programming24 min, 3 exercises
    4. Math and Geometry Problems20 min, 3 exercises
  15. Phase 14: Design Problems7 lessons
    1. Design LRU and LFU Caches23 min, 3 exercises
    2. Design with Stacks and Queues19 min, 3 exercises
    3. Design Iterators and Flatteners21 min, 3 exercises
    4. Design with Randomization21 min, 3 exercises
    5. Design Trackers and Feeds23 min, 3 exercises
    6. Design Rate Limiter and Hit Counter15 min, 3 exercises
    7. Design HashMap and Skiplist18 min, 3 exercises
  16. Phase 15: Simulation and Implementation1 lessons
    1. Simulation and Stateful Iteration19 min, 3 exercises
  17. Phase 16: Advanced Graph Algorithms3 lessons
    1. Minimum Spanning Trees: Kruskal and Prim26 min, 3 exercises
    2. Strongly Connected Components and Bridges30 min, 3 exercises
    3. Maximum Flow32 min, 3 exercises
  18. Phase 17: Advanced CP Topics5 lessons
    1. Segment Trees and Lazy Propagation21 min, 3 exercises
    2. Fenwick Tree (Binary Indexed Tree)20 min, 3 exercises
    3. Sparse Tables and Range Minimum Query18 min, 3 exercises
    4. String Algorithms: KMP, Z, and Rabin-Karp26 min, 3 exercises
    5. Advanced DP Optimizations28 min, 3 exercises
  19. Phase 18: Templates and Cheatsheets4 lessons
    1. Data Structure Templates7 min, 3 exercises
    2. Graph Algorithm Templates7 min, 3 exercises
    3. Algorithm Templates10 min, 3 exercises
    4. Master Complexity Cheatsheet15 min, 3 exercises
  20. Phase 19: Interview and Contest Strategy5 lessons
    1. FAANG Interview Playbook16 min, 1 exercise
    2. Pattern Recognition Guide12 min, 1 exercise
    3. Contest Strategy15 min, 1 exercise
    4. Study Plans and Roadmap15 min
    5. Mock Interviews and Spaced Repetition8 min
  21. Phase 20: Problem Sets5 lessons
    1. Getting Started Problem Set13 min, 3 exercises
    2. Arrays and Strings Problem Set15 min, 3 exercises
    3. Trees and Graphs Problem Set18 min, 3 exercises
    4. Dynamic Programming Problem Set13 min, 3 exercises
    5. Hard Mix Problem Set13 min, 3 exercises
  22. Phase 21: Company Guides10 lessons
    1. Company Comparison Matrix8 min
    2. Google Interview Guide3 min
    3. Meta Interview Guide2 min
    4. Amazon Interview Guide3 min
    5. Microsoft Interview Guide3 min
    6. Apple Interview Guide3 min
    7. Netflix Interview Guide3 min
    8. Uber Interview Guide3 min
    9. Bloomberg Interview Guide3 min
    10. ByteDance Interview Guide3 min
  23. Phase 22: Low Level Design5 lessons
    1. The OOD Round: How to Approach It15 min, 3 exercises
    2. Design an Elevator System15 min, 3 exercises
    3. Design a Parking Lot15 min, 3 exercises
    4. Design a Deck of Cards14 min, 3 exercises
    5. Design a Library System15 min, 3 exercises
  24. Phase 23: Concurrency2 lessons
    1. Thread Ordering and Signalling15 min, 3 exercises
    2. Bounded Buffers and Deadlock16 min, 3 exercises

What learners say