Data Structures & Algorithms

Learn algorithms by following each decision.

Understand the problem, explore a solution and load examples into the visualization player.

Choose your starting point

New to Data Structures & Algorithms? Start with Foundations. You can switch anytime.

Foundations

No account or installation needed. Your progress stays on this device.

Mallikarjuna Mallisetty, author
About the author

Mallikarjuna Mallisetty

General programming

Mallikarjuna shares practical programming tutorials and foundational concepts designed to help developers learn by building and experimenting.

View LinkedIn profile ↗

Your learning path

All lessons

233 lessons2355 examples0 quiz questions

Your progress is saved on this device.

Estimated time includes reading, exploring code and answering quizzes. Learn at your own pace.

Overview of Techniques

14 lessons · 90 min
  1. Overview of DSA Problem Solving Techniques0code examples0quiz questions2minutes estimated learning time
  2. Brute Force Technique in DSA0code examples0quiz questions5minutes estimated learning time
  3. Greedy Algorithm Technique in DSA0code examples0quiz questions14minutes estimated learning time
  4. Divide and Conquer Technique in DSA0code examples0quiz questions9minutes estimated learning time
  5. Dynamic Programming Technique in DSA0code examples0quiz questions8minutes estimated learning time
  6. Backtracking Technique in DSA0code examples0quiz questions2minutes estimated learning time
  7. Recursion Technique in DSA0code examples0quiz questions4minutes estimated learning time
  8. Sliding Window Technique in DSA0code examples0quiz questions4minutes estimated learning time
  9. Two Pointers Technique0code examples0quiz questions7minutes estimated learning time
  10. Binary Search Technique0code examples0quiz questions4minutes estimated learning time
  11. Tree / Graph Traversal Technique in DSA0code examples0quiz questions7minutes estimated learning time
  12. Bit Manipulation Technique in DSA8code examples0quiz questions18minutes estimated learning time
  13. Hashing Technique0code examples0quiz questions3minutes estimated learning time
  14. Heaps Technique in DSA0code examples0quiz questions3minutes estimated learning time

Sorting

6 lessons · 104 min
  1. Bubble Sort11code examples0quiz questions19minutes estimated learning time
  2. Selection Sort11code examples0quiz questions20minutes estimated learning time
  3. Insertion Sort11code examples0quiz questions20minutes estimated learning time
  4. Merge Sort11code examples0quiz questions15minutes estimated learning time
  5. Quick Sort11code examples0quiz questions16minutes estimated learning time
  6. Heap Sort10code examples0quiz questions14minutes estimated learning time

Arrays

32 lessons · 503 min
  1. Find Maximum and Minimum in Array using Loop11code examples0quiz questions17minutes estimated learning time
  2. Find Second Largest in Array11code examples0quiz questions17minutes estimated learning time
  3. Find Second Smallest in Array11code examples0quiz questions17minutes estimated learning time
  4. Reverse Array using Two Pointers11code examples0quiz questions16minutes estimated learning time
  5. Check if Array is Sorted11code examples0quiz questions15minutes estimated learning time
  6. Remove Duplicates from Sorted Array11code examples0quiz questions16minutes estimated learning time
  7. Left Rotate an Array by One Place11code examples0quiz questions15minutes estimated learning time
  8. Left Rotate an Array by K Places11code examples0quiz questions16minutes estimated learning time
  9. Move Zeroes in Array to End11code examples0quiz questions16minutes estimated learning time
  10. Linear Search in Array11code examples0quiz questions16minutes estimated learning time
  11. Union of Two Arrays11code examples0quiz questions15minutes estimated learning time
  12. Find Missing Number in Array12code examples0quiz questions17minutes estimated learning time
  13. Max Consecutive Ones in Array11code examples0quiz questions15minutes estimated learning time
  14. Find Kth Smallest Element11code examples0quiz questions16minutes estimated learning time
  15. Longest Subarray with Given Sum (Positives)11code examples0quiz questions15minutes estimated learning time
  16. Longest Subarray with Given Sum (Positives and Negatives)11code examples0quiz questions16minutes estimated learning time
  17. Find Majority Element in Array (more than n/2 times)11code examples0quiz questions15minutes estimated learning time
  18. Find Majority Element in Array (more than n/3 times)10code examples0quiz questions15minutes estimated learning time
  19. Maximum Subarray Sum using Kadane's Algorithm11code examples0quiz questions16minutes estimated learning time
  20. Print Subarray with Maximum Sum10code examples0quiz questions15minutes estimated learning time
  21. Stock Buy and Sell11code examples0quiz questions15minutes estimated learning time
  22. Rearrange Array Alternating Positive and Negative Elements11code examples0quiz questions16minutes estimated learning time
  23. Next Permutation of Array11code examples0quiz questions16minutes estimated learning time
  24. Leaders in an Array11code examples0quiz questions16minutes estimated learning time
  25. Longest Consecutive Sequence in Array11code examples0quiz questions15minutes estimated learning time
  26. Count Subarrays with Given Sum11code examples0quiz questions15minutes estimated learning time
  27. Sort an Array of 0s, 1s, and 2s11code examples0quiz questions16minutes estimated learning time
  28. Two Sum Problem11code examples0quiz questions15minutes estimated learning time
  29. Three Sum Problem11code examples0quiz questions16minutes estimated learning time
  30. 4 Sum Problem10code examples0quiz questions15minutes estimated learning time
  31. Find Length of Largest Subarray with 0 Sum11code examples0quiz questions16minutes estimated learning time
  32. Find Maximum Product Subarray11code examples0quiz questions16minutes estimated learning time

Arrays - Binary Search

28 lessons · 445 min
  1. Binary Search in Array using Iteration11code examples0quiz questions16minutes estimated learning time
  2. Find Lower Bound in Sorted Array11code examples0quiz questions15minutes estimated learning time
  3. Find Upper Bound in Sorted Array11code examples0quiz questions16minutes estimated learning time
  4. Search Insert Position in Sorted Array (Lower Bound Approach)11code examples0quiz questions16minutes estimated learning time
  5. Floor and Ceil in Sorted Array11code examples0quiz questions16minutes estimated learning time
  6. First Occurrence in a Sorted Array11code examples0quiz questions15minutes estimated learning time
  7. Last Occurrence in a Sorted Array11code examples0quiz questions16minutes estimated learning time
  8. Count Occurrences in Sorted Array11code examples0quiz questions15minutes estimated learning time
  9. Search Element in a Rotated Sorted Array11code examples0quiz questions16minutes estimated learning time
  10. Search in Rotated Sorted Array with Duplicates11code examples0quiz questions16minutes estimated learning time
  11. Minimum in Rotated Sorted Array11code examples0quiz questions15minutes estimated learning time
  12. Find Rotation Count in Sorted Array11code examples0quiz questions16minutes estimated learning time
  13. Search Single Element in Sorted Array12code examples0quiz questions17minutes estimated learning time
  14. Find Peak Element in Array11code examples0quiz questions15minutes estimated learning time
  15. Square Root using Binary Search11code examples0quiz questions16minutes estimated learning time
  16. Nth Root of a Number using Binary Search11code examples0quiz questions16minutes estimated learning time
  17. Koko Eating Bananas11code examples0quiz questions16minutes estimated learning time
  18. Minimum Days to Make M Bouquets10code examples0quiz questions16minutes estimated learning time
  19. Find the Smallest Divisor Given a Threshold11code examples0quiz questions16minutes estimated learning time
  20. Capacity to Ship Packages within D Days11code examples0quiz questions16minutes estimated learning time
  21. Kth Missing Positive Number11code examples0quiz questions16minutes estimated learning time
  22. Aggressive Cows Problem11code examples0quiz questions16minutes estimated learning time
  23. Allocate Minimum Number of Pages11code examples0quiz questions16minutes estimated learning time
  24. Split Array into K Subarrays - Minimize Largest Sum10code examples0quiz questions16minutes estimated learning time
  25. Painter's Partition Problem11code examples0quiz questions16minutes estimated learning time
  26. Minimize Maximum Distance Between Gas Stations11code examples0quiz questions16minutes estimated learning time
  27. Median of Two Sorted Arrays of Different Sizes11code examples0quiz questions16minutes estimated learning time
  28. K-th Element of Two Sorted Arrays11code examples0quiz questions17minutes estimated learning time

Strings

19 lessons · 283 min
  1. Reverse Words in a String11code examples0quiz questions15minutes estimated learning time
  2. Find the Largest Odd Number in a Numeric String11code examples0quiz questions15minutes estimated learning time
  3. Find Longest Common Prefix in Array of Strings11code examples0quiz questions16minutes estimated learning time
  4. Find Longest Common Substring in Two Strings11code examples0quiz questions16minutes estimated learning time
  5. Check If Two Strings Are Isomorphic11code examples0quiz questions15minutes estimated learning time
  6. Check String Rotation using Concatenation11code examples0quiz questions15minutes estimated learning time
  7. Check if Two Strings Are Anagrams11code examples0quiz questions15minutes estimated learning time
  8. Sort Characters by Frequency - Optimal HashMap and Heap Approach11code examples0quiz questions16minutes estimated learning time
  9. Find Longest Palindromic Substring - Dynamic Programming10code examples0quiz questions15minutes estimated learning time
  10. Find Longest Palindromic Substring Without Dynamic Programming9code examples0quiz questions13minutes estimated learning time
  11. Remove Outermost Parentheses in String11code examples0quiz questions14minutes estimated learning time
  12. Find Maximum Nesting Depth of Parentheses12code examples0quiz questions16minutes estimated learning time
  13. Convert Roman Numerals to Integer10code examples0quiz questions14minutes estimated learning time
  14. Convert Integer to Roman Numeral10code examples0quiz questions15minutes estimated learning time
  15. Implement Atoi - Convert String to Integer9code examples0quiz questions14minutes estimated learning time
  16. Count Number of Substrings in a String10code examples0quiz questions14minutes estimated learning time
  17. Edit Distance Problem11code examples0quiz questions15minutes estimated learning time
  18. Calculate Sum of Beauty of All Substrings10code examples0quiz questions15minutes estimated learning time
  19. Reverse Each Word in a String11code examples0quiz questions15minutes estimated learning time

Bit Manipulation

15 lessons · 231 min
  1. Check if i-th Bit is Set11code examples0quiz questions15minutes estimated learning time
  2. Check if a Number is Even/Odd11code examples0quiz questions15minutes estimated learning time
  3. Check if a Number is Power of 211code examples0quiz questions15minutes estimated learning time
  4. Count Number of Set Bits11code examples0quiz questions15minutes estimated learning time
  5. Swap Two Numbers using XOR11code examples0quiz questions15minutes estimated learning time
  6. Divide Two Integers without using Multiplication, Division and Modulus Operator11code examples0quiz questions16minutes estimated learning time
  7. Count Number of Bits to Flip to Convert A to B11code examples0quiz questions16minutes estimated learning time
  8. Find the Number that Appears Odd Number of Times11code examples0quiz questions16minutes estimated learning time
  9. Power Set11code examples0quiz questions16minutes estimated learning time
  10. Find XOR of Numbers from L to R12code examples0quiz questions17minutes estimated learning time
  11. Prime Factors of a Number11code examples0quiz questions16minutes estimated learning time
  12. All Divisors of Number10code examples0quiz questions15minutes estimated learning time
  13. Sieve of Eratosthenes10code examples0quiz questions15minutes estimated learning time
  14. Find Prime Factorisation of a Number using Sieve10code examples0quiz questions15minutes estimated learning time
  15. Power(n, x)10code examples0quiz questions14minutes estimated learning time

Sliding Window & Two Pointer Problems

12 lessons · 191 min
  1. Length of Longest Substring Without Repeating Characters11code examples0quiz questions17minutes estimated learning time
  2. Find Maximum Consecutive Ones in a Binary Array11code examples0quiz questions16minutes estimated learning time
  3. Fruit Into Baskets - Sliding Window Technique11code examples0quiz questions17minutes estimated learning time
  4. Longest Repeating Character Replacement using Sliding Window10code examples0quiz questions16minutes estimated learning time
  5. Count Binary Subarrays With Given Sum Using Sliding Window10code examples0quiz questions15minutes estimated learning time
  6. Count Number of Nice Subarrays with Exactly K Odd Numbers11code examples0quiz questions16minutes estimated learning time
  7. Count Substrings Containing All Three Characters10code examples0quiz questions16minutes estimated learning time
  8. Maximum Points You Can Obtain from Cards10code examples0quiz questions15minutes estimated learning time
  9. Longest Substring with At Most K Distinct Characters10code examples0quiz questions15minutes estimated learning time
  10. Subarrays with Exactly K Different Integers | Sliding Window Approach10code examples0quiz questions16minutes estimated learning time
  11. Minimum Window Substring Using Sliding Window10code examples0quiz questions16minutes estimated learning time
  12. Minimum Window Subsequence Using Two Pointers10code examples0quiz questions16minutes estimated learning time

Matrix

3 lessons · 42 min
  1. Set Matrix Zeroes10code examples0quiz questions14minutes estimated learning time
  2. Rotate Matrix by 90 Degrees Clockwise11code examples0quiz questions14minutes estimated learning time
  3. Print Matrix in Spiral Manner10code examples0quiz questions14minutes estimated learning time

Matrix - Binary Search

4 lessons · 74 min
  1. Row with Maximum Number of 1's12code examples0quiz questions16minutes estimated learning time
  2. Search in a Sorted 2D Matrix11code examples0quiz questions16minutes estimated learning time
  3. Search in Row and Column-wise Sorted Matrix13code examples0quiz questions18minutes estimated learning time
  4. Matrix Median19code examples0quiz questions24minutes estimated learning time

Binary Trees

36 lessons · 536 min
  1. Preorder Traversal of a Binary Tree using Recursion11code examples0quiz questions15minutes estimated learning time
  2. Preorder Traversal of a Binary Tree using Iteration11code examples0quiz questions15minutes estimated learning time
  3. Inorder Traversal of a Binary Tree using Recursion11code examples0quiz questions15minutes estimated learning time
  4. Inorder Traversal of a Binary Tree using Iteration11code examples0quiz questions15minutes estimated learning time
  5. Postorder Traversal of a Binary Tree Using Recursion11code examples0quiz questions15minutes estimated learning time
  6. Postorder Traversal of a Binary Tree using Iteration11code examples0quiz questions15minutes estimated learning time
  7. Level Order Traversal of a Binary Tree using Recursion11code examples0quiz questions15minutes estimated learning time
  8. Level Order Traversal of a Binary Tree using Iteration11code examples0quiz questions15minutes estimated learning time
  9. Reverse Level Order Traversal of a Binary Tree using Iteration11code examples0quiz questions15minutes estimated learning time
  10. Reverse Level Order Traversal of a Binary Tree using Recursion10code examples0quiz questions14minutes estimated learning time
  11. Find Height of a Binary Tree12code examples0quiz questions16minutes estimated learning time
  12. Find Diameter of a Binary Tree11code examples0quiz questions16minutes estimated learning time
  13. Find Mirror of a Binary Tree11code examples0quiz questions15minutes estimated learning time
  14. Left View of a Binary Tree10code examples0quiz questions14minutes estimated learning time
  15. Right View of a Binary Tree10code examples0quiz questions15minutes estimated learning time
  16. Top View of a Binary Tree11code examples0quiz questions16minutes estimated learning time
  17. Bottom View of a Binary Tree11code examples0quiz questions16minutes estimated learning time
  18. Zigzag Traversal of a Binary Tree10code examples0quiz questions15minutes estimated learning time
  19. Check if a Binary Tree is Balanced11code examples0quiz questions15minutes estimated learning time
  20. Diagonal Traversal of a Binary Tree11code examples0quiz questions15minutes estimated learning time
  21. Boundary Traversal of a Binary Tree11code examples0quiz questions15minutes estimated learning time
  22. Construct a Binary Tree from a String with Bracket Representation11code examples0quiz questions16minutes estimated learning time
  23. Convert a Binary Tree into a Doubly Linked List9code examples0quiz questions14minutes estimated learning time
  24. Convert a Binary Tree into a Sum Tree9code examples0quiz questions13minutes estimated learning time
  25. Find Minimum Swaps Required to Convert a Binary Tree into a BST10code examples0quiz questions15minutes estimated learning time
  26. Check if a Binary Tree is a Sum Tree10code examples0quiz questions16minutes estimated learning time
  27. Check if All Leaf Nodes are at the Same Level in a Binary Tree10code examples0quiz questions15minutes estimated learning time
  28. Lowest Common Ancestor (LCA) in a Binary Tree10code examples0quiz questions15minutes estimated learning time
  29. Tree Isomorphism Problem11code examples0quiz questions15minutes estimated learning time
  30. Check if a Binary Tree Contains Duplicate Subtrees of Size 2 or More10code examples0quiz questions14minutes estimated learning time
  31. Check if Two Binary Trees are Mirror Images11code examples0quiz questions15minutes estimated learning time
  32. Calculate the Sum of Nodes on the Longest Path from Root to Leaf in a Binary Tree10code examples0quiz questions15minutes estimated learning time
  33. Print All Paths in a Binary Tree with a Given Sum11code examples0quiz questions15minutes estimated learning time
  34. Find the Distance Between Two Nodes in a Binary Tree9code examples0quiz questions13minutes estimated learning time
  35. Find the kth Ancestor of a Node in a Binary Tree10code examples0quiz questions14minutes estimated learning time
  36. Find All Duplicate Subtrees in a Binary Tree10code examples0quiz questions14minutes estimated learning time

Binary Search Trees

14 lessons · 212 min
  1. Find a Value in a Binary Search Tree11code examples0quiz questions15minutes estimated learning time
  2. Delete a Node in a Binary Search Tree10code examples0quiz questions15minutes estimated learning time
  3. Find the Minimum Value in a Binary Search Tree11code examples0quiz questions15minutes estimated learning time
  4. Find the Maximum Value in a Binary Search Tree11code examples0quiz questions15minutes estimated learning time
  5. Find the Inorder Successor in a Binary Search Tree10code examples0quiz questions15minutes estimated learning time
  6. Find the Inorder Predecessor in a Binary Search Tree10code examples0quiz questions15minutes estimated learning time
  7. Check if a Binary Tree is a Binary Search Tree11code examples0quiz questions16minutes estimated learning time
  8. Find the Lowest Common Ancestor of Two Nodes in a Binary Search Tree10code examples0quiz questions15minutes estimated learning time
  9. Convert a Binary Tree into a Binary Search Tree10code examples0quiz questions14minutes estimated learning time
  10. Balance a Binary Search Tree10code examples0quiz questions15minutes estimated learning time
  11. Merge Two Binary Search Trees11code examples0quiz questions15minutes estimated learning time
  12. Find the kth Largest Element in a Binary Search Tree12code examples0quiz questions17minutes estimated learning time
  13. Find the kth Smallest Element in a Binary Search Tree11code examples0quiz questions15minutes estimated learning time
  14. Flatten a Binary Search Tree into a Sorted List11code examples0quiz questions15minutes estimated learning time

Graphs

46 lessons · 686 min
  1. Breadth-First Search in Graphs11code examples0quiz questions16minutes estimated learning time
  2. Depth-First Search in Graphs11code examples0quiz questions16minutes estimated learning time
  3. Number of Provinces in an Undirected Graph11code examples0quiz questions15minutes estimated learning time
  4. Connected Components in a Matrix11code examples0quiz questions15minutes estimated learning time
  5. Rotten Oranges Problem - BFS in Matrix11code examples0quiz questions16minutes estimated learning time
  6. Flood Fill Algorithm - Graph Based13code examples0quiz questions18minutes estimated learning time
  7. Detect Cycle in an Undirected Graph using DFS11code examples0quiz questions16minutes estimated learning time
  8. Detect Cycle in an Undirected Graph using BFS11code examples0quiz questions16minutes estimated learning time
  9. Distance of Nearest Cell Having 1 - Grid BFS11code examples0quiz questions16minutes estimated learning time
  10. Surrounded Regions in Matrix using Graph Traversal11code examples0quiz questions16minutes estimated learning time
  11. Number of Enclaves in Grid11code examples0quiz questions15minutes estimated learning time
  12. Word Ladder - Shortest Transformation using Graph10code examples0quiz questions15minutes estimated learning time
  13. Word Ladder II - All Shortest Transformation Sequences9code examples0quiz questions14minutes estimated learning time
  14. Number of Distinct Islands using DFS11code examples0quiz questions16minutes estimated learning time
  15. Check if a Graph is Bipartite using DFS11code examples0quiz questions16minutes estimated learning time
  16. Topological Sort Using DFS10code examples0quiz questions15minutes estimated learning time
  17. Topological Sort using Kahn's Algorithm10code examples0quiz questions14minutes estimated learning time
  18. Cycle Detection in Directed Graph using BFS10code examples0quiz questions15minutes estimated learning time
  19. Course Schedule - Task Ordering with Prerequisites10code examples0quiz questions15minutes estimated learning time
  20. Course Schedule 2 - Task Ordering Using Topological Sort10code examples0quiz questions14minutes estimated learning time
  21. Find Eventual Safe States in a Directed Graph10code examples0quiz questions15minutes estimated learning time
  22. Alien Dictionary Character Order10code examples0quiz questions15minutes estimated learning time
  23. Shortest Path in Undirected Graph with Unit Distance10code examples0quiz questions14minutes estimated learning time
  24. Shortest Path in DAG using Topological Sort10code examples0quiz questions15minutes estimated learning time
  25. Dijkstra's Algorithm Using Set - Shortest Path in Graph10code examples0quiz questions14minutes estimated learning time
  26. Dijkstra’s Algorithm Using Priority Queue10code examples0quiz questions14minutes estimated learning time
  27. Shortest Distance in a Binary Maze using BFS11code examples0quiz questions15minutes estimated learning time
  28. Path With Minimum Effort in Grid using Graphs11code examples0quiz questions16minutes estimated learning time
  29. Cheapest Flights Within K Stops - Graph Problem11code examples0quiz questions15minutes estimated learning time
  30. Number of Ways to Reach Destination in Shortest Time - Graph Problem10code examples0quiz questions15minutes estimated learning time
  31. Minimum Multiplications to Reach End - Graph BFS10code examples0quiz questions15minutes estimated learning time
  32. Bellman-Ford Algorithm for Shortest Paths10code examples0quiz questions14minutes estimated learning time
  33. Floyd Warshall Algorithm for All-Pairs Shortest Path10code examples0quiz questions14minutes estimated learning time
  34. Find the City With the Fewest Reachable Neighbours10code examples0quiz questions14minutes estimated learning time
  35. Minimum Spanning Tree in Graphs10code examples0quiz questions14minutes estimated learning time
  36. Prim's Algorithm for Minimum Spanning Tree10code examples0quiz questions14minutes estimated learning time
  37. Disjoint Set (Union-Find) with Union by Rank and Path Compression10code examples0quiz questions14minutes estimated learning time
  38. Kruskal's Algorithm - Minimum Spanning Tree10code examples0quiz questions14minutes estimated learning time
  39. Minimum Operations to Make Network Connected10code examples0quiz questions14minutes estimated learning time
  40. Most Stones Removed with Same Row or Column10code examples0quiz questions14minutes estimated learning time
  41. Accounts Merge Problem using Disjoint Set Union10code examples0quiz questions14minutes estimated learning time
  42. Number of Islands II - Online Queries using DSU10code examples0quiz questions14minutes estimated learning time
  43. Making a Large Island Using DSU11code examples0quiz questions16minutes estimated learning time
  44. Bridges in Graph using Tarjan's Algorithm11code examples0quiz questions15minutes estimated learning time
  45. Articulation Points in Graphs11code examples0quiz questions15minutes estimated learning time
  46. Strongly Connected Components using Kosaraju's Algorithm10code examples0quiz questions14minutes estimated learning time

Tries

4 lessons · 61 min
  1. Search Word in Trie11code examples0quiz questions15minutes estimated learning time
  2. Insert Word in Trie11code examples0quiz questions14minutes estimated learning time
  3. Prefix Search in Trie11code examples0quiz questions16minutes estimated learning time
  4. Delete Word from Trie11code examples0quiz questions16minutes estimated learning time