Embark on a comprehensive journey through Data Structures and Algorithms with Striver's A2Z DSA Course. This structured learning path covers everything from foundational C++ concepts and essential problem-solving techniques like Recursion, Sorting, Arrays, and Binary Search, to advanced topics including Trees, Graphs, Dynamic Programming, Sliding Window, Greedy Algorithms, and specialized data structures. Designed for competitive programmers and interview aspirants, this course equips you with the knowledge and practice needed to master DSA.
Re 1. Introduction to Recursion | Recursion Tree | Stack Space | Strivers A2Z DSA Course
22:46
Re 2. Problems on Recursion | Strivers A2Z DSA Course
22:04
Re 3. Parameterised and Functional Recursion | Strivers A2Z DSA Course
18:14
Re 4. Problems on Functional Recursion | Strivers A2Z DSA Course
19:48
Re 5. Multiple Recursion Calls | Problems | Strivers A2Z DSA Course
16:45
Find Second Largest Element in Array | Remove duplicates from Sorted Array | Arrays Intro Video
43:26
Rotate Array by K places | Union, Intersection of Sorted Arrays | Move Zeros to End | Arrays Part-2
1:13:17
Find element that appears once | Find missing number | Max Consecutive number of 1's | Arrays Part-3
38:00
Longest Subarray with sum K | Brute - Better - Optimal | Generate Subarrays
41:42
2 Sum Problem | 2 types of the same problem for Interviews | Brute-Better-Optimal
18:20
Sort an array of 0's 1's & 2's | Intuition of Algo🔥 | C++ Java Python | Brute-Better-Optimal
25:07
Majority Element I | Brute-Better-Optimal | Moore's Voting Algorithm | Intuition 🔥|Brute to Optimal
18:13
Kadane's Algorithm | Maximum Subarray Sum | Finding and Printing
20:09
Rearrange Array Elements by Sign | 2 Varieties of same Problem
21:37
Next Permutation - Intuition in Detail 🔥 | Brute to Optimal
28:15
Leaders in an Array | Brute - Optimal | Strivers A2Z DSA Course
11:53
Longest Consecutive Sequence | Google Interview Question | Brute Better Optimal
23:11
Set Matrix Zeroes | O(1) Space Approach | Brute - Better - Optimal
30:07
Rotate Matrix/Image by 90 Degrees | Brute - Optimal
17:47
Spiral Traversal of a Matrix | Spiral Matrix
16:33
Count Subarray sum Equals K | Brute - Better -Optimal
24:09
Pascal Triangle | Finding nCr in minimal time
26:45
Majority Element II | Brute-Better-Optimal
26:58
3 Sum | Brute - Better - Optimal with Codes
38:25
4 Sum | Brute - Better - Optimal with Codes
28:47
Number of Subarrays with xor K | Brute - Better - Optimal
24:55
Merge Overlapping Intervals | Brute, Optimal with Precise TC analysis
22:35
Merge Sorted Arrays Without Extra Space | 2 Optimal Solution
32:47
Find the Missing and Repeating Number | 4 Approaches 🔥
42:24
Count Inversions in an Array | Brute and Optimal
24:17
Reverse Pairs | Hard Interview Question
32:26
Maximum Product Subarray - Best Intuitive Approach Discussed
20:27
BS-1. Binary Search Introduction | Real Life Example | Iterative | Recursive | Overflow Cases
33:27
BS-2. Implement Lower Bound and Upper Bound | Search Insert Position | Floor and Ceil
32:26
BS-3. First and Last Occurrences in Array | Count occurrences in Array
25:28
BS-4. Search Element in Rotated Sorted Array - I
16:38
BS-5. Search Element in Rotated Sorted Array II
12:44
BS-6. Minimum in Rotated Sorted Array
17:08
BS-7. Find out how many times array has been rotated
5:01
BS-8. Single Element in Sorted Array
22:16
BS-9. Find Peak Element
32:53
BS-10. Finding Sqrt of a number using Binary Search
17:11
BS-11. Find the Nth root of an Integer
20:44
BS-12. Koko Eating Bananas
21:04
BS-13. Minimum days to make M bouquets | Binary Search
26:01
BS-14. Find the Smallest Divisor Given a Threshold | Binary Search
16:00
BS-15. Capacity to Ship Packages within D Days
20:36
BS-16. Kth Missing Positive Number | Maths + Binary Search
22:52
BS-17. Aggressive Cows | Binary Search Hard
26:44
BS-18. Allocate Books or Book Allocation | Hard Binary Search
27:29
BS 19. Painter's Partition and Split Array - Largest Sum
11:20
BS-20. Minimise Maximum Distance between Gas Stations | 3 Approaches | Heap | Binary Search
59:12
BS 21: Median of two Sorted Arrays of Different Sizes | Brute and Better Approach
15:59
BS-21. Median of two Sorted Arrays of Different Sizes | Binary Search Approach With Intuition
35:00
Bs-22. K-th element of two sorted arrays | Binary Search Approach
11:53
BS 23. Row with maximum number of 1s | Binary Search on 2D Arrays
10:18
BS-24. Search in a 2D Matrix - I | Binary Search of 2D
15:42
BS-25. Search in a 2D Matrix - II | Binary Search on 2D
15:29
BS-26. Find Peak Element-II | Binary Search
20:02
BS-27. Median in a Row Wise Sorted Matrix
23:13
L1. Introduction to LinkedList | Traversal | Length | Search an Element
45:17
L2. Deletion and Insertion in LL | 8 Problems
56:30
L3. Introduction to Doubly LinkedList | Insertions and Deletions
1:04:07
L4. Reverse a DLL | Multiple Approaches
18:30
L5. Add 2 numbers in LinkedList | Dummy Node Approach
14:48
L6. Odd Even Linked List | Multiple Approaches
24:05
L7. Sort a LinkedList of 0's, 1's and 2's | Multiple Approaches
23:23
L8. Remove Nth Node from the end of the LinkedList | Multiple Approaches
16:23
L9. Reverse a LinkedList | Iterative and Recursive
32:42
L10. Check if a LinkedList is Palindrome or Not | Multiple Approaches
20:02
L11. Add 1 to a number represented by LinkedList
25:28
L12. Find the intersection point of Y LinkedList
32:05
L13. Find the middle element of the LinkedList | Multiple Approaches
14:37
L14. Detect a loop or cycle in LinkedList | With proof and Intuition
20:26
L15. Find the length of the Loop in LinkedList
14:01
L16. Delete the middle node of the LinkedList
16:36
L17. Find the starting point of the Loop/Cycle in LinkedList | Multiple Approaches
22:42
L18. Delete all occurrences of a Key in DLL
11:13
L19. Find all Pairs with given Sum in DLL
14:14
L20. Remove duplicates from sorted DLL
12:53
L21. Reverse Nodes in K Group Size of LinkedList
24:31
L22. Rotate a LinkedList
12:10
L23. Merge two sorted Linked Lists
18:55
L24. Flattening a LinkedList | Multiple Approaches with Dry Run
32:58
L25. Merge K Sorted Lists | Multiple Approaches
30:02
L26. Sort a Linked List | Merge Sort and Brute Force
22:11
L27. Clone a LinkedList with Next and Random Pointers | Copy List with Random Pointers
33:00
L28. Design a Browser History | LinkedList Implementation
14:38
L1. Introduction to Stack and Queue | Implementation using Data Structures
1:05:06
L2. Check for Balanced Parentheses | Stack and Queue
12:28
L3. Prefix, Infix, and Postfix Conversion | Stack and Queue Playlist
50:47
L4. Implement Min Stack | Stack and Queue Playlist
20:55
L5. Next Greater Element | Stack and Queue Playlist
18:25
L6. Next Greater Element - II | Stack and Queue Playlist
15:41
L7. Previous Smaller Element | Stack and Queue Playlist
8:11
L8. Trapping Rainwater | 2 Approaches | Stack and Queue Playlist
28:58
L9. Sum of Subarray Minimum | Stack and Queue Playlist
23:35
L10. Sum of subarray ranges | Stack and Queue Playlist
10:34
L11. Aestroid Collisions | Stack and Queue Playlist
17:28
L12. Largest Rectangle in Histogram | Stack and Queue Playlist
31:42
L13. Maximal Rectangle | Stack and Queue Playlist
12:12
L14. Remove K Digits | Stack and Queue Playlist
15:29
L15. Stock Span Problem | Stack and Queue Playlist
19:21
L16. Sliding Window Maximum | Stack and Queue Playlist
19:58
L17. The Celebrity Problem | Stack and Queue Playlist
16:17
L1. Introduction to Trees | Types of Trees
9:50
L2. Binary Tree Representation in C++
4:43
L3. Binary Tree Representation in Java
4:12
L4. Binary Tree Traversals in Binary Tree | BFS | DFS
9:59
L5. Preorder Traversal of Binary Tree | C++ | Java | Code Explanation
7:29
L6. Inorder Traversal of Binary Tree | C++ | Java | Code Explanation
7:07
L7. Postorder Traversal of Binary Tree | C++ | Java | Code Explanation
5:31
L8. Level Order Traversal of Binary Tree | BFS | C++ | Java
8:57
L9. Iterative Preorder Traversal in Binary Tree | C++ | Java | Stack
6:50
L10. iterative Inorder Traversal in Binary Tree | C++ | Java | Stack
11:14
L11. Iterative Postorder Traversal using 2 Stack | C++ | Java | Binary Tree
4:09
L12. Iterative Postorder Traversal using 1 Stack | C++ | Java | Binary Trees
12:33
L13. Preorder Inorder Postorder Traversals in One Traversal | C++ | Java | Stack | Binary Trees
10:57
L14. Maximum Depth in Binary Tree | Height of Binary Tree | C++ | Java
8:05
L15. Check for Balanced Binary Tree | C++ | Java
12:30
L16. Diameter of Binary Tree | C++ | Java
13:47
L17. Maximum Path Sum in Binary Tree | C++ | Java
17:50
L18. Check it two trees are Identical or Not | C++ | Java
4:18
L19. Zig-Zag or Spiral Traversal in Binary Tree | C++ | Java
8:21
L20. Boundary Traversal in Binary Tree | C++ | Java
9:47
L21. Vertical Order Traversal of Binary Tree | C++ | Java
18:53
L22. Top View of Binary Tree | C++ | Java
10:30
L23. Bottom View of Binary Tree | C++ | Java
13:13
L24. Right/Left View of Binary Tree | C++ | Java
13:28
L25. Check for Symmetrical Binary Trees | C++ | Java
9:20
L26. Print Root to Node Path in Binary Tree | C++ | Java
11:00
L27. Lowest Common Ancestor in Binary Tree | LCA | C++ | Java
14:09
L28. Maximum Width of Binary Tree | C++ | Java
22:41
L29. Children Sum Property in Binary Tree | O(N) Approach | C++ | Java
16:13
L30. Print all the Nodes at a distance of K in Binary Tree | C++ | Java
17:42
L31. Minimum time taken to BURN the Binary Tree from a Node | C++ | Java
18:24
L32. Count total Nodes in a COMPLETE Binary Tree | O(Log^2 N) Approach | C++ | Java
16:13
L33. Requirements needed to construct a Unique Binary Tree | Theory
8:41
L34. Construct a Binary Tree from Preorder and Inorder Traversal | C++ | Java
18:52
L35. Construct the Binary Tree from Postorder and Inorder Traversal | C++ | Java
19:46
L36. Serialize and De-serialize Binary Tree | C++ | Java
17:18
L37. Morris Traversal | Preorder | Inorder | C++ | Java
23:50
L38. Flatten a Binary Tree to Linked List | 3 Approaches | C++ | Java
21:51
L39. Introduction to Binary Search Tree | BST
8:54
L40. Search in a Binary Search Tree | BST | C++ | Java
6:33
L41. Ceil in a Binary Search Tree | BST | C++ | Java
5:36
L42. Floor in a Binary Search Tree | BST | C++ | Java
5:00
L43. Insert a given Node in Binary Search Tree | BST | C++ | Java
8:18
L44. Delete a Node in Binary Search Tree | BST | C++ | Java
15:48
L45. K-th Smallest/Largest Element in BST
8:27
L46. Check if a tree is a BST or BT | Validate a BST
9:39
L47. LCA in Binary Search Tree
8:06
L48. Construct a BST from a preorder traversal | 3 Methods
16:32
L49. Inorder Successor/Predecessor in BST | 3 Methods
10:47
L50. Binary Search Tree Iterator | BST | O(H) Space
14:00
L51. Two Sum In BST | Check if there exists a pair with Sum K
15:06
L52. Recover BST | Correct BST with two nodes swapped
15:56
L53. Largest BST in Binary Tree
17:27
G-1. Introduction to Graph | Types | Different Conventions Used
13:43
G-2. Graph Representation in C++ | Two Ways to Represent
16:04
G-3. Graph Representation in Java | Two Ways to Represent
13:13
G-4. What are Connected Components ?
7:07
G-5. Breadth-First Search (BFS) | C++ and Java | Traversal Technique in Graphs
19:39
G-6. Depth-First Search (DFS) | C++ and Java | Traversal Technique in Graphs
20:16
G-7. Number of Provinces | C++ | Java | Connected Components
15:29
G-8. Number of Islands | Number of Connected Components in Matrix | C++ | Java
25:04
G-9. Flood Fill Algorithm | C++ | Java
20:34
G-10. Rotten Oranges | C++ | Java
22:30
G-11. Detect a Cycle in an Undirected Graph using BFS | C++ | Java
20:19
G-12. Detect a Cycle in an Undirected Graph using DFS | C++ | Java
19:10
G-13. Distance of nearest cell having 1 | 0/1 Matrix | C++ | Java
20:21
G-14. Surrounded Regions | Replace O's with X's | C++ | Java
23:17
G-15. Number of Enclaves | Multi-source BFS | C++ | Java
15:34
G-16. Number of Distinct Islands | Constructive Thinking + DFS | C++ | Java
18:02
G-17. Bipartite Graph | BFS | C++ | Java
18:29
G-18. Bipartite Graph | DFS | C++ | Java
14:54
G-19. Detect cycle in a directed graph using DFS | Java | C++
17:22
G-20. Find Eventual Safe States - DFS
23:43
G-21. Topological Sort Algorithm | DFS
13:30
G-22. Kahn's Algorithm | Topological Sort Algorithm | BFS
13:50
G-23. Detect a Cycle in Directed Graph | Topological Sort | Kahn's Algorithm | BFS
6:17
G-24. Course Schedule I and II | Pre-requisite Tasks | Topological Sort
11:32
G-25. Find Eventual Safe States - BFS - Topological Sort
16:57
G-26. Alien Dictionary - Topological Sort
20:54
G-27. Shortest Path in Directed Acyclic Graph - Topological Sort
26:36
G-28. Shortest Path in Undirected Graph with Unit Weights
16:32
G-29. Word Ladder - I | Shortest Paths
28:07
G-30. Word Ladder - 2 | Shortest Paths
25:42
G-31. Word Ladder - 2 | Optimised Approach for Leetcode
23:40
G-32. Dijkstra's Algorithm - Using Priority Queue - C++ and Java - Part 1
22:42
G-33. Dijkstra's Algorithm - Using Set - Part 2
12:29
G-34. Dijkstra's Algorithm - Why PQ and not Q, Intuition, Time Complexity Derivation - Part 3
14:30
G-35. Print Shortest Path - Dijkstra's Algorithm
19:20
G-36. Shortest Distance in a Binary Maze
23:42
G-37. Path With Minimum Effort
24:30
G-38. Cheapest Flights Within K Stops
23:56
G-39. Minimum Multiplications to Reach End
19:31
G-40. Number of Ways to Arrive at Destination
24:06
G-41. Bellman Ford Algorithm
27:43
G-42. Floyd Warshall Algorithm
30:13
G-43. Find the City With the Smallest Number of Neighbours at a Threshold Distance
12:56
G-44. Minimum Spanning Tree - Theory
7:59
G-45. Prim's Algorithm - Minimum Spanning Tree - C++ and Java
19:10
G-46. Disjoint Set | Union by Rank | Union by Size | Path Compression
42:15
G-47. Kruskal's Algorithm - Minimum Spanning Tree - C++ and Java
13:11
G-48. Number of Provinces - Disjoint Set
8:03
G-49. Number of Operations to Make Network Connected - DSU
14:48
G-50. Accounts Merge - DSU
22:01
G-51. Number of Islands - II - Online Queries - DSU
25:32
G-52. Making a Large Island - DSU
26:16
G-53. Most Stones Removed with Same Row or Column - DSU
23:51
DP 1. Introduction to Dynamic Programming | Memoization | Tabulation | Space Optimization Techniques
33:51
DP 2. Climbing Stairs | Learn How to Write 1D Recurrence Relations
13:17
DP 3. Frog Jump | Dynamic Programming | Learn to write 1D DP
38:50
DP 4. Frog Jump with K Distance | Lecture 3 Follow Up Question
17:35
DP 5. Maximum Sum of Non-Adjacent Elements | House Robber | 1-D | DP on Subsequences
32:23
DP 6. House Robber 2 | 1D DP | DP on Subsequences
9:50
DP 7. Ninja's Training | MUST WATCH for 2D CONCEPTS 🔥 | Vacation | Atcoder | 2D DP |
52:18
DP 8. Grid Unique Paths | Learn Everything about DP on Grids | ALL TECHNIQUES 🔥
48:29
DP 9. Unique Paths 2 | DP on Grid with Maze Obstacles
12:59
DP 10. Minimum Path Sum in Grid | Asked to me In Microsoft Internship Interview | DP on GRIDS
23:47
DP 11. Triangle | Fixed Starting Point and Variable Ending Point | DP on GRIDS
34:39
DP 12. Minimum/Maximum Falling Path Sum | Variable Starting and Ending Points | DP on Grids
42:38
DP 13. Cherry Pickup II | 3D DP Made Easy | DP On Grids
43:23
DP 14. Subset Sum Equals to Target | Identify DP on Subsequences and Ways to Solve them
38:49
DP 15. Partition Equal Subset Sum | DP on Subsequences
9:43
Dp 16. Partition A Set Into Two Subsets With Minimum Absolute Sum Difference | DP on Subsequences
29:50
DP 17. Counts Subsets with Sum K | Dp on Subsequences
36:57
DP 18. Count Partitions With Given Difference | Dp on Subsequences
18:00
DP 19. 0/1 Knapsack | Recursion to Single Array Space Optimised Approach | DP on Subsequences
41:19
DP 20. Minimum Coins | DP on Subsequences | Infinite Supplies Pattern
34:15
DP 21. Target Sum | DP on Subsequences
9:04
DP 22. Coin Change 2 | Infinite Supply Problems | DP on Subsequences
22:17
DP 23. Unbounded Knapsack | 1-D Array Space Optimised Approach
22:54
DP 24. Rod Cutting Problem | 1D Array Space Optimised Approach
22:54
Dp 25. Longest Common Subsequence | Top Down | Bottom-Up | Space Optimised | DP on Strings
47:09
DP 26. Print Longest Common Subsequence | Dp on Strings
16:55
DP 27. Longest Common Substring | DP on Strings 🔥
14:01
DP 28. Longest Palindromic Subsequence
9:38
DP 29. Minimum Insertions to Make String Palindrome
12:00
DP 30. Minimum Insertions/Deletions to Convert String A to String B
7:30
DP 31. Shortest Common Supersequence | DP on Strings
26:44
DP 32. Distinct Subsequences | 1D Array Optimisation Technique 🔥
40:15
DP 33. Edit Distance | Recursive to 1D Array Optimised Solution 🔥
37:39
DP 34. Wildcard Matching | Recursive to 1D Array Optimisation 🔥
43:52
DP 35. Best Time to Buy and Sell Stock | DP on Stocks 🔥
9:11
DP 36. Buy and Sell Stock - II | Recursion to Space Optimisation
35:34
DP 37. Buy and Sell Stocks III | Recursion to Space Optimisation
31:50
DP 38. Buy and Stock Sell IV | Recursion to Space Optimisation
12:24
DP 39. Buy and Sell Stocks With Cooldown | Recursion to Space Optimisation
15:21
DP 40. Buy and Sell Stocks With Transaction Fee | Recursion to Space Optimisation
7:20
DP 41. Longest Increasing Subsequence | Memoization
24:35
DP 42. Printing Longest Increasing Subsequence | Tabulation | Algorithm
25:57
DP 43. Longest Increasing Subsequence | Binary Search | Intuition
16:27
DP 44. Largest Divisible Subset | Longest Increasing Subsequence
14:39
DP 45. Longest String Chain | Longest Increasing Subsequence | LIS
16:57
DP 46. Longest Bitonic Subsequence | LIS
13:52
DP 47. Number of Longest Increasing Subsequences
20:46
DP 48. Matrix Chain Multiplication | MCM | Partition DP Starts 🔥
53:41
DP 49. Matrix Chain Multiplication | Bottom-Up | Tabulation
9:08
DP 50. Minimum Cost to Cut the Stick
30:02
DP 51. Burst Balloons | Partition DP | Interactive G-Meet Session Update
34:00
DP 52. Evaluate Boolean Expression to True | Partition DP
34:55
DP 53. Palindrome Partitioning - II | Front Partition 🔥
23:17
DP 54. Partition Array for Maximum Sum | Front Partition 🔥
21:39
L2. Print all Divisors of a Number | Maths Playlist
9:10
L3. Check if a Number if Prime or not | Maths Playlist
7:10
L4. Print all prime factors of a Number | Maths Playlist
18:53
L5. Power Exponentiation | Maths Playlist
12:39
L6. Sieve of Eratosthenes | Maths Playlist
18:27
L7. Count Prime in a range L-R | Maths Playlist
16:39
L8. Smallest Prime Factor (SPF) | Prime Factorisation | Query Based Problem | Maths Playlist
16:57
L1. Introduction to Sliding Window and 2 Pointers | Templates | Patterns
36:55
L2. Maximum Points You Can Obtain from Cards | 2 Pointers and Sliding Window Playlist
11:13
L3. Longest Substring Without Repeating Characters | 2 Pointers and Sliding Window Playlist
23:09
L4. Max Consecutive Ones III | 2 Pointers and Sliding Window Playlist
29:58
L5. Fruit Into Baskets | 2 Pointers and Sliding Window Playlist
30:02
L6. Longest Substring With At Most K Distinct Characters | 2 Pointers and Sliding Window Playlist
21:32
L7. Number of Substrings Containing All Three Characters | 2 Pointers and Sliding Window Playlist
19:40
L8. Longest Repeating Character Replacement | 2 Pointers and Sliding Window Playlist
25:21
L9. Binary Subarrays With Sum | 2 Pointers and Sliding Window Playlist
20:27
L10. Count number of Nice subarrays | 2 Pointers and Sliding Window Playlist
4:54
L11. Subarray with k different integers | 2 Pointers and Sliding Window Playlist
20:49
L12. Minimum Window Substring | 2 Pointers and Sliding Window Playlist
27:06
L1. Assign Cookies | Greedy Algorithm Playlist
10:51
L2. Lemonade Change | Greedy Algorithm Playlist
9:00
L3. Shortest Job First (or SJF) CPU Scheduling
7:20
L4. Jump Game - I | Greedy Algorithm Playlist
10:53
L5. Jump Game - II | Greedy Algorithm Playlist
16:45
L6. Job Sequencing Problem | Greedy Algorithm Playlist
16:07
L7. N Meeting in One Room | Greedy Algorithms Playlist
13:12
L8. Non Overlapping Intervals | Greedy Algorithms Playlist
8:46
L9. Insert Intervals | Greedy Algorithms Playlist
13:16
L10. Minimum number of platforms required in a railway station
18:10
L11. Valid Parenthesis String | Multiple Approaches
26:09
L12. Candy | Slope Approach Intuition Based
30:10
L13. Fractional Knapsack Algorithm
18:41