DSA Track

DSA Tutorials

Data structures and algorithms — arrays, trees, graphs, dynamic programming and more.

110
Topics
18
Beginner
51
Intermediate
41
Advanced
Arrays & Strings
Array Data Structure Beginner Two Pointer Technique Intermediate Sliding Window Technique Intermediate Prefix Sum Array Intermediate Kadane's Algorithm Intermediate Dutch National Flag Algorithm Intermediate String Manipulation Patterns Intermediate Anagram and Palindrome Problems Beginner Matrix Traversal Patterns Intermediate Rotate Array Problem Intermediate Merge Intervals Problem Intermediate Next Permutation Algorithm Advanced Maximum Product Subarray Intermediate
Linked List
Singly Linked List Beginner Doubly Linked List Intermediate Circular Linked List Intermediate Reverse a Linked List Intermediate Detect Loop in Linked List Intermediate Merge Two Sorted Linked Lists Intermediate Find Middle of Linked List Beginner Remove Nth Node from End Intermediate LRU Cache Implementation Advanced Clone a Linked List with Random Pointers Advanced
Stack & Queue
Stack Data Structure Beginner Queue Data Structure Beginner Priority Queue and Heap Intermediate Deque — Double Ended Queue Intermediate Monotonic Stack Pattern Advanced Balanced Parentheses Problem Beginner Next Greater Element Problem Intermediate Implement Stack using Queue Intermediate
Trees
Binary Tree Intermediate Binary Search Tree Intermediate Tree Traversals — Inorder Preorder Postorder Intermediate Level Order Traversal of Binary Tree Intermediate Height and Depth of Binary Tree Beginner AVL Tree Advanced Red-Black Tree Advanced Segment Tree Advanced Fenwick Tree — Binary Indexed Tree Advanced Trie Data Structure Advanced Lowest Common Ancestor Advanced Diameter of Binary Tree Intermediate Convert BST to Sorted Array Intermediate Serialize and Deserialize Binary Tree Advanced Morris Traversal of Binary Tree Advanced
Graphs
Graph Representation Intermediate BFS — Breadth First Search Intermediate DFS — Depth First Search Intermediate Dijkstra Shortest Path Algorithm Advanced Bellman-Ford Algorithm Advanced Floyd-Warshall Algorithm Advanced Topological Sort Advanced Union Find — Disjoint Set Advanced Minimum Spanning Tree — Kruskal and Prim Advanced Cycle Detection in Graph Intermediate Bipartite Graph Check Intermediate Number of Islands Problem Intermediate Strongly Connected Components Advanced A* Search Algorithm Advanced
Sorting
Bubble Sort Beginner Selection Sort Beginner Insertion Sort Beginner Merge Sort Intermediate Quick Sort Intermediate Heap Sort Intermediate Counting Sort and Radix Sort Intermediate Sorting Algorithm Comparison Beginner
Searching
Binary Search Algorithm Beginner Binary Search on Answer Advanced Linear Search Algorithm Beginner Ternary Search Algorithm Advanced
Dynamic Programming
Introduction to Dynamic Programming Intermediate Memoization vs Tabulation Intermediate 0/1 Knapsack Problem Advanced Longest Common Subsequence Advanced Longest Increasing Subsequence Advanced Coin Change Problem Advanced Matrix Chain Multiplication Advanced Edit Distance Problem Advanced Rod Cutting Problem Advanced Fibonacci with DP Beginner Subset Sum Problem Advanced Egg Drop Problem Advanced Word Break Problem Advanced Palindrome Partitioning Advanced DP on Trees Advanced
Hashing
Hash Table and Hash Map Intermediate Hash Collisions and Resolution Intermediate Two Sum Problem using Hashing Beginner Group Anagrams Problem Intermediate Longest Consecutive Sequence Intermediate Rabin-Karp String Matching Advanced Cuckoo Hashing Advanced
Greedy & Backtracking
Greedy Algorithm Introduction Intermediate Activity Selection Problem Intermediate Huffman Coding Advanced Backtracking Introduction Intermediate N-Queens Problem Advanced Sudoku Solver Advanced Rat in a Maze Problem Intermediate Permutations using Backtracking Advanced
Complexity Analysis
Big O Notation Explained Beginner Time Complexity Analysis Intermediate Space Complexity Analysis Intermediate Amortized Analysis Advanced
Recursion
Introduction to Recursion Beginner Recursion vs Iteration Intermediate Tower of Hanoi Problem Intermediate Divide and Conquer Technique Intermediate