A2Z-DSA-Sheet

A2Z DSA Sheet

This repository contains my solutions to the A2Z DSA Sheet created by Striver. I am following this structured guide to master Data Structures and Algorithms (DSA), providing solutions and updates for each step of the roadmap.

Table of Contents

  1. Step 1: Basics
  2. Step 2: Arrays
  3. Step 3: Sorting and Searching
  4. Step 4: Binary Search
  5. Step 5: Strings
  6. Step 6: Learn LinkedList
  7. Step 7: Recursion
  8. Step 8: Bit Manipulation
  9. Step 9: Stack and Queues
  10. Step 10: Sliding Window & Two Pointer Combined Problems
  11. Step 11: Heaps
  12. Step 12: Greedy Algorithms
  13. Step 13: Binary Trees
  14. Step 14: Binary Search Trees
  15. Step 15: Graphs
  16. Step 16: Dynamic Programming
  17. Step 17: Tries
  18. Step 18: Strings
  19. Contributing
  20. License

Step 1: Basics

Lec 1: Introduction to DSA

Lec 2: Complexity Analysis


Step 2: Arrays

Lec 1: Introduction to Arrays

Lec 2: Easy Array Problems

Lec 3: Medium Array Problems


Step 3: Sorting and Searching

Lec 1: Sorting Algorithms

Lec 2: Searching Algorithms

Lec 3: Hard


Lec 1: BS on 1D Arrays

Lec 2: BS on Answers

Lec 3: BS on 2D Arrays


Step 5: Strings

Lec 1: Basic and Easy String Problems

Lec 2: Medium String Problems


Step 6: Learn LinkedList

Lec 1: Learn 1D LinkedList

Lec 2: Learn Doubly LinkedList

Lec 3: Medium Problems of LL

Lec 4: Medium Problems of DLL

Lec 5: Hard Problems of LL


Step 7: Recursion

Lec 1: Get a Strong Hold

Lec 2: Subsequences Pattern

Lec 3: Trying out all Combos


Step 8: Bit Manipulation

Lec 1: Learn Bit Manipulation

Lec 2: Interview Problems

Lec 3: Advanced Maths


Step 9: Stack and Queues

Lec 1: Learning

Lec 2: Prefix, Infix, PostFix Conversion Problems

Lec 3: Monotonic Stack/Queue Problems

Lec 4: Implementation Problems


Step 10: Sliding Window & Two Pointer Combined Problems

Lec 1: Medium Problems

Lec 2: Hard Problems


Step 11: Heaps

Lec 1: Learning

Lec 2: Medium Problems

Lec 3: Hard Problems


Step 12: Greedy Algorithms

Lec 1: Easy Problems

Lec 2: Medium/Hard Problems


Step 13: Binary Trees

Lec 1: Traversals

Lec 2: Medium Problems

Lec 3: Hard Problems


Step 14: Binary Search Trees

Lec 1: Concepts

Lec 2: Practice Problems


Step 15: Graphs

Lec 1: Learning

Lec 2: Problems on BFS/DFS

Lec 3: Topo Sort and Problems

Lec 4: Shortest Path Algorithms and Problems

Lec 5: Minimum Spanning Tree

Lec 6: Other Algorithms


Step 16: Dynamic Programming

Lec 1: Introduction to DP

Lec 2: 1D DP

Lec 3: 2D/3D DP and DP on Grids

Lec 4: DP on Subsequences

Lec 5: DP on Strings

Lec 6: DP on Stocks

Lec 7: DP on LIS

Lec 8: MCM DP | Partition DP

Lec 9: DP on Squares


Step 17: Tries

Lec 1: Theory

Lec 2: Problems


Step 18: Strings

Lec 1: Hard Problems


Contributing

We welcome contributions! If you’d like to contribute to any of the topics, feel free to fork the repo and submit a pull request.