Data Structures and Algorithms Problems

Array

     

  1. Find pair with given sum in the array
     
  2. Check if subarray with 0 sum is exists or not
     
  3. Print all sub-arrays with 0 sum
     
  4. Sort binary array in linear time
     
  5. Find a duplicate element in a limited range array
     
  6. Find largest sub-array formed by consecutive integers
     
  7. Find maximum length sub-array having given sum
     
  8. Find maximum length sub-array having equal number of 0’s and 1’s
     
  9. Sort an array containing 0’s, 1’s and 2’s (Dutch national flag problem)
     
  10. Inplace merge two sorted arrays
     
  11. Merge two arrays by satisfying given constraints
     
  12. Find index of 0 to replace to get maximum length sequence of continuous ones
     
  13. Find maximum product of two integers in an array
     
  14. Shuffle a given array of elements (Fisher–Yates shuffle)
     
  15. Rearrange the array with alternate high and low elements
     
  16. Find equilibrium index of an array
     
  17. Find majority element in an array (Boyer–Moore majority vote algorithm)
     
  18. Move all zeros present in the array to the end
     
  19. Replace each element of array with product of every other element without using / operator
     
  20. Find Longest Bitonic Subarray in an array
     
  21. Find maximum difference between two elements in the array by satisfying given constraints
     
  22. Maximum subarray problem (Kadane’s algorithm)
     
  23. Print continuous subarray with maximum sum
     
  24. Maximum Sum Circular Subarray
     
  25. Find all distinct combinations of given length
     
  26. Find all distinct combinations of given length with repetition allowed
     
  27. Find maximum sequence of continuous 1’s formed by replacing at-most k zeroes by ones
     
  28. Find minimum sum subarray of given size k
     
  29. Find subarray having given sum in given array of integers
     
  30. Find the length of smallest subarray whose sum of elements is greater than the given number
     
  31. Find largest number possible from set of given numbers
     
  32. Find the smallest window in array sorting which will make the entire array sorted
     
  33. Find maximum sum path involving elements of given arrays
     
  34. Maximum profit earned by buying and selling shares any number of times
     
  35. Trapping Rain Water within given set of bars
     
  36. Longest Increasing Subsequence
     
  37. Longest Decreasing Subsequence Problem
     
  38. Find maximum product subarray in a given array
     
  39. Find maximum sum of subsequence with no adjacent elements
     
  40. Find minimum platforms needed in the station so to avoid any delay in arrival of any train
     
  41. Decode the array constructed from another array
     
  42. Sort an array using one swap
     
  43. Find Triplet with given sum in an array
     
  44. Length of longest continuous sequence with same sum in given binary arrays
     
  45. Rearrange array such that A[A[i]] is set to i for every element A[i]
     
  46. Reverse every consecutive m elements of the given subarray
     
  47. Maximum Product Subset Problem
     
  48. Find pairs with given difference k in the array
     
  49. Find pairs with given difference k in the array | Constant space solution
     
  50. 4 sum problem | Quadruplets with given sum
     
  51. Print all quadruplets with given sum | 4-sum problem extended
     
  52. Find odd occurring element in an array in single traversal
     
  53. Find two odd occurring element in an array without using any extra space
     
  54. Quickselect Algorithm
     
  55. Print all Triplets that forms Arithmetic Progression
     
  56. Print all triplets that forms Geometric Progression
     
  57. Print all combination of numbers from 1 to n having sum n
     
  58. Replace each element of the array by its corresponding rank in the array
     
  59. Print all Triplets in an array with sum less than or equal to given number
     
  60. Group elements of an array based on their first occurrence
     
  61. Find minimum difference between index of two given elements present in the array
     
  62. Find maximum absolute difference between sum of two non-overlapping sub-arrays
     
  63. Find all Symmetric Pairs in an Array of Pairs
     
  64. Partition an array into two sub-arrays with the same sum
     
  65. Find count of distinct elements in every sub-array of size k
     
  66. Find two numbers with maximum sum formed by array digits
     
  67. Print all sub-arrays of an array having distinct elements
     
  68. Find a Triplet having Maximum Product in an Array
     
  69. Find ways to calculate a target from elements of specified array
     
  70. Find Minimum Index of Repeating Element in an Array
     
  71. Generate Random Input from an Array according to given Probabilities
     
  72. Find pair in an array having minimum absolute sum
     
  73. Find Index of Maximum Occurring Element with Equal Probability
     
  74. Check if an Array is Formed by Consecutive Integers
     
  75. Find two non-overlapping pairs having same sum in an array
     
  76. Find Minimum Product among all Combinations of Triplets in an Array
     
  77. Replace every element of an array with the least greater element on its right
     
  78. Find all odd occurring elements in an array having limited range of elements
     
  79. Add elements of two arrays into a new array
     
  80. Count the distinct absolute values in the sorted array
     
  81. Print all combinations of positive integers in increasing order that sum to a given number
     
  82. Find all distinct combinations of given length – Part 2
     
  83. Find subarrays with given sum in an array
     
  84. Find the surpasser count for each element of an array
     
  85. Find maximum length sequence of continuous ones (Using Sliding Window)
     
  86. Find maximum length sequence of continuous ones
     
  87. Calculate frequency of all elements present in an array of specified range in linear time and using constant space
     
  88. Rearrange the array such that it contains positive and negative numbers at alternate positions
     
  89.  

  90. Merging Overlapping Intervals
     
  91. Activity Selection Problem
     
  92. Job Sequencing Problem with Deadlines
     
  93. Introduction to Priority Queues using Binary Heaps
     
  94. Min Heap and Max Heap Implementation in C++
     
  95. Min Heap and Max Heap Implementation in Java
     
  96. Heap Sort (Out-of-place and In-place implementation in C++ and C)
     
  97. Check if given array represents min heap or not
     
  98. Convert Max Heap to Min Heap in linear time
     
  99. Find K’th largest element in an array
     
  100. Sort a K-Sorted Array
     
  101. Merge M sorted lists of variable length
     
  102. Find K’th smallest element in an array
     
  103. Find smallest range with at-least one element from each of the given lists
     
  104. Merge M sorted lists each containing N elements
     
  105. Insertion sort | Iterative & Recursive
     
  106. Selection sort | Iterative & Recursive
     
  107. Bubble sort | Iterative & Recursive
     
  108. Merge Sort
     
  109. Quicksort
     
  110. Iterative Implementation of Quicksort
     
  111. Hybrid QuickSort
     
  112. Quicksort using Dutch National Flag Algorithm
     
  113. Quick Sort using Hoare’s Partitioning scheme
     
  114. External merge sort
     
  115. Custom Sort | Sort elements by their frequency and Index
     
  116. Custom Sort | Sort elements of the array by order of elements defined by the second array
     
  117. Inversion Count of an array
     
  118. Segregate positive and negative integers in linear time
     
  119. Binary Search
     
  120. Ternary Search vs Binary search
     
  121. Interpolation search
     
  122. Exponential search
     
  123. Find number of rotations in a circularly sorted array
     
  124. Search an element in a circular sorted array
     
  125. Find first or last occurrence of a given number in a sorted array
     
  126. Count occurrences of a number in a sorted array with duplicates
     
  127. Find smallest missing element from a sorted array
     
  128. Find Floor and Ceil of a number in a sorted array
     
  129. Search in a nearly sorted array in O(log(n)) time
     
  130. Find number of 1’s in a sorted binary array
     
  131. Find the peak element in an array
     
  132. Maximum Sum Subarray using Divide & Conquer
     
  133. Find Minimum and Maximum element in an array using minimum comparisons
     
  134. Matrix Chain Multiplication
     
  135. 0-1 Knapsack problem
     
  136. Maximize value of the expression
     
  137. Partition problem
     
  138. Subset sum problem
     
  139. Minimum Sum Partition problem
     
  140. Rod Cutting
     
  141. Coin change-making problem (unlimited supply of coins)
     
  142. Coin Change Problem (Total number of ways to get the denomination of coins)
     
  143. Longest alternating subsequence
     
  144. Combinations of words formed by replacing given numbers with corresponding alphabets
     
  145. Decode the given sequence to construct minimum number without repeated digits
     
  146. All combinations of elements satisfying given constraints
     
  147. Find Missing Term in a Sequence in log(n) time
     
  148. Print all distinct Subsets of a given Set
     
  149. Find Floor and Ceil of a number in a sorted array (Recursive solution)
     
  150. Set both elements of a binary array to 0 in single line
     
  151. K-Partition Problem | Printing all Partitions
     
  152. 3 Partition Problem
     
  153. 3-partition problem extended | Print all partitions
     
  154. Iterative Merge Sort Algorithm (Bottom-up Merge Sort)
     
  155. Find two duplicate elements in an limited range array (using XOR)
     
  156. Find missing number and duplicate elements in an array
     
  157. Find Minimum and Maximum element in an array by doing minimum comparisons
     
  158. Find Frequency of each element in a sorted array containing duplicates
     
  159. Difference between Subarray, Subsequence and Subset
     

Backtracking

Bit Manipulation

 

  1. Bit Hacks – Part 1 (Basic)
     
  2. Bit Hacks – Part 2 (Playing with k’th bit)
     
  3. Bit Hacks – Part 3 (Playing with rightmost set bit of a number)
     
  4. Bit Hacks – Part 4 (Playing with letters of English alphabet)
     
  5. Bit Hacks – Part 5 (Find absolute value of an integer without branching)
     
  6. Bit Hacks – Part 6 (Random Problems)
     
  7. Brian Kernighan’s Algorithm to count set bits in an integer
     
  8. Compute parity of a number using lookup table
     
  9. Count set bits using lookup table
     
  10. Find the minimum or maximum of two integers without using branching
     
  11. Multiply 16-bit integers using 8-bit multiplier
     
  12. Round up to the next highest power of 2
     
  13. Round up to the previous power of 2
     
  14. Swap individual bits at given position in an integer
     
  15. Check if given number is power of 4 or not
     
  16. Reverse Bits of a given Integer
     
  17. Find odd occurring element in an array in single traversal
     
  18. Find two odd occurring element in an array without using any extra space
     
  19. Swap two bits at given position in an integer
     
  20. Add binary representation of two integers
     
  21. Swap Adjacent Bits of a Numbe Convertor
     
  22. Print all distinct Subsets of a given Set
     
  23. Perform Division of two numbers without using division operator (/)
     
  24. Check if adjacent bits are set in binary representation of a given number
     
  25. Conditionally negate a value without branching
     
  26. Find two duplicate elements in an limited range array (using XOR)
     
  27. Find missing number and duplicate elements in an array
     
  28. Check if given number is power of 8 or not
     
  29. Circular shift on binary representation of an integer by k positions
     
  30. Solve given set of problems without using multiplication or division operators
     
  31. Reverse Bits of an integer using lookup table
     
  32.  
     

  33. Generate binary numbers between 1 to N
     
  34. Efficiently implement power function | Recursive and Iterative
     
  35. Find square of a number without using multiplication and division operator
     
  36. Generate power set of a given set
     
  37. Huffman Coding
     
  38. Find all odd occurring elements in an array having limited range of elements
     

Binary Tree

 

  1. Check if two given binary trees are identical or not | Iterative & Recursive
     
  2. Calculate height of a binary tree | Iterative & Recursive
     
  3. Delete given Binary Tree | Iterative & Recursive
     
  4. Inorder Tree Traversal | Iterative & Recursive
     
  5. Preorder Tree Traversal | Iterative & Recursive
     
  6. Postorder Tree Traversal | Iterative & Recursive
     
  7. Level Order Traversal of Binary Tree
     
  8. Spiral Order Traversal of Binary Tree
     
  9. Reverse Level Order Traversal of Binary Tree
     
  10. Print all nodes of a given binary tree in specific order
     
  11. Print left view of binary tree
     
  12. Print Bottom View of Binary Tree
     
  13. Print Top View of Binary Tree
     
  14. Find next node in same level for given node in a binary tree
     
  15. Check if given binary tree is complete binary tree or not
     
  16. Determine if given two nodes are cousins of each other
     
  17. Print cousins of given node in a binary tree
     
  18. In-place convert given binary tree to its sum tree
     
  19. Check if given binary tree is a sum tree or not
     
  20. Combinations of words formed by replacing given numbers with corresponding alphabets
     
  21. Determine if given binary tree is a subtree of another binary tree or not
     
  22. Find diameter of a binary tree
     
  23. Check if given binary Tree has symmetric structure or not
     
  24. Convert binary tree to its mirror
     
  25. Check if binary tree can be converted to another by doing any no. of swaps of left & right child
     
  26. Find Lowest Common Ancestor (LCA) of two nodes in a binary tree
     
  27. Print all paths from root to leaf nodes in given binary tree
     
  28. Find ancestors of given node in a Binary Tree
     
  29. Find the distance between given pairs of nodes in a binary tree
     
  30. Find Vertical Sum in a given Binary Tree
     
  31. Print nodes in vertical order of a given Binary Tree (Vertical Traversal)
     
  32. Find the diagonal sum of given binary tree
     
  33. Print Diagonal Traversal of Binary Tree
     
  34. Print corner nodes of every level in binary tree
     
  35. In-place convert given Binary Tree to Doubly Linked List
     
  36. Sink nodes containing zero to the bottom of the binary tree
     
  37. Convert given binary tree to full tree by removing half nodes
     
  38. Truncate given binary tree to remove nodes which lie on a path having sum less than K
     
  39. Find maximum sum root-to-leaf path in a binary tree
     
  40. Check if given binary tree is height balanced or not
     
  41. Convert normal binary tree to Left-child right-sibling binary tree
     
  42. Determine if given Binary Tree is a BST or not
     
  43. Convert a Binary Tree to BST by maintaining its original structure
     
  44. Invert given Binary Tree | Recursive and Iterative solution
     
  45. Print Right View of a Binary Tree
     
  46. Print leaf to root path for every leaf node in a binary tree
     
  47. Find maximum width of given binary tree
     
  48. Build Binary Tree from given Parent array
     
  49. C++ Program to Print Binary Tree Structure
     
  50. Find all nodes at given distance from leaf nodes in a binary tree
     
  51. Count all subtrees having same value of nodes in a binary tree
     
  52. Find Maximum Difference Between a Node and its Descendants in a Binary Tree
     
  53. Construct a Binary Tree from Ancestor Matrix
     
  54. Calculate height of a binary tree with leaf nodes forming a circular doubly linked list
     
  55. Find maximum sum path between two leaves in a binary tree
     
  56. Fix a binary tree that is only one swap away from becoming a BST
     

Binary Search Tree

Divide & Conquer

Dynamic Programming

 

  1. Introduction to Dynamic Programming
     
  2. Longest Common Subsequence | Introduction & LCS Length
     
  3. Longest Common Subsequence | Space optimized version
     
  4. Longest Common Subsequence of K-sequences
     
  5. Longest Common Subsequence | Finding all LCS
     
  6. Longest Common Substring problem
     
  7. Longest Palindromic Subsequence using Dynamic Programming
     
  8. Longest Repeated Subsequence problem
     
  9. Implement Diff Utility
     
  10. Shortest Common Supersequence | Introduction & SCS Length
     
  11. Shortest Common Supersequence | Finding all SCS
     
  12. Shortest Common Supersequence | Using LCS
     
  13. Longest Increasing Subsequence using Dynamic Programming
     
  14. Longest Bitonic Subsequence
     
  15. Increasing Subsequence with Maximum Sum
     
  16. The Levenshtein distance (Edit distance) problem
     
  17. Find size of largest square sub-matrix of 1’s present in given binary matrix
     
  18. Matrix Chain Multiplication
     
  19. Find the minimum cost to reach last cell of the matrix from its first cell
     
  20. Find longest sequence formed by adjacent numbers in the matrix
     
  21. Count number of paths in a matrix with given cost to reach destination cell
     
  22. 0-1 Knapsack problem
     
  23. Maximize value of the expression
     
  24. Partition problem
     
  25. Subset sum problem
     
  26. Minimum Sum Partition problem
     
  27. Find all N-digit binary strings without any consecutive 1’s
     
  28. Rod Cutting
     
  29. Maximum Product Rod Cutting
     
  30. Coin change-making problem (unlimited supply of coins)
     
  31. Coin Change Problem – Find total number of ways to get the denomination of coins
     
  32. Total possible solutions to linear equation of k variables
     
  33. Longest alternating subsequence
     
  34. Count number of times a pattern appears in given string as a subsequence
     
  35. Collect maximum points in a matrix by satisfying given constraints
     
  36. Count total possible combinations of N-digit numbers in a mobile keypad
     
  37. Find optimal cost to construct binary search tree
     
  38. Word Break Problem
     
  39. Word Break Problem | Using Trie Data Structure
     
  40. Determine Minimal Adjustment Cost of an Array
     
  41. Check if a string is K-Palindrome or not
     
  42. Find total ways to achieve given sum with n throws of dice having k faces
     
  43. Wildcard Pattern Matching
     
     
  44. Find probability that a person is alive after taking N steps on the island
     
  45. Calculate sum of all elements in a sub-matrix in constant time
     
  46. Find maximum sum K x K sub-matrix in a given M x N matrix
     
  47. Find maximum sum submatrix present in a given matrix
     
  48. Find maximum sum of subsequence with no adjacent elements
     
  49. Maximum subarray problem (Kadane’s algorithm)
     
  50. Single-Source Shortest Paths – Bellman Ford Algorithm
     
  51. All-Pairs Shortest Paths – Floyd Warshall Algorithm
     
  52. Longest Decreasing Subsequence Problem
     
  53. Pots of Gold Game using Dynamic Programming
     
  54. Find minimum cuts needed for palindromic partition of a string
     
  55. Maximum Length Snake Sequence
     
  56. 3 Partition Problem
     
  57. Calculate size of the largest plus of 1’s in binary matrix
     
  58. Check if given string is interleaving of two other given strings
     
  59. Longest Increasing Subsequence using LCS
     
  60. Determine negative-weight cycle in a graph
     

Graph

 

  1. Terminology and Representations of Graphs
     
  2. Graph Implementation using STL
     
  3. Graph Implementation in C++ without using STL
     
  4. Graph Implementation in C
     
  5. Graph Implementation in Java using Collections
     
  6. Breadth First Search (BFS) | Iterative & Recursive Implementation
     
  7. Depth First Search (DFS) | Iterative & Recursive Implementation
     
  8. Arrival and Departure Time of Vertices in DFS
     
  9. Types of edges involved in DFS and relation between them
     
  10. Bipartite Graph
     
  11. Determine if a given graph is Bipartite Graph using DFS
     
  12. Minimum number of throws required to win Snake and Ladder game
     
  13. Topological Sorting in a DAG
     
  14. Kahn’s Topological Sort Algorithm
     
  15. Transitive Closure of a Graph
     
  16. Check if an undirected graph contains cycle or not
     
  17. Total paths in given digraph from given source to destination having exactly m edges
     
  18. Determine if an undirected graph is a Tree (Acyclic Connected Graph)
     
  19. 2-Edge Connectivity in the graph
     
  20. 2-Vertex Connectivity in the graph
     
  21. Check if given digraph is a DAG (Directed Acyclic Graph) or not
     
  22. Disjoint-Set Data Structure (Union-Find Algorithm)
     
  23. Chess Knight Problem – Find Shortest path from source to destination
     
  24. Check if given Graph is Strongly Connected or not
     
  25. Check if given Graph is Strongly Connected or not using one DFS Traversal
     
  26. Union-Find Algorithm for Cycle Detection in undirected graph
     
  27. Kruskal’s Algorithm for finding Minimum Spanning Tree
     
  28. Single-Source Shortest Paths – Dijkstra’s Algorithm
     
  29. Single-Source Shortest Paths – Bellman Ford Algorithm
     
  30. All-Pairs Shortest Paths – Floyd Warshall Algorithm
     
  31. Find Cost of Shortest Path in DAG using one pass of Bellman-Ford
     
  32. Least Cost Path in Weighted Digraph using BFS
     
  33. Find maximum cost path in graph from given source to destination
     
  34. Determine negative-weight cycle in a graph
     
  35. Least cost path in given digraph from given source to destination having exactly m edges
     
  36.  
     

  37. Print all k-colorable configurations of the graph (Vertex coloring of graph)
     
  38. Print All Hamiltonian Path present in a graph
     
  39. Greedy coloring of graph
     

Heap

Linked List

 

  1. Introduction to Linked Lists
     
  2. Linked List Implementation | Part 1
     
  3. Linked List Implementation | Part 2
     
  4. Static Linked List in C
     
  5. Clone given Linked List
     
  6. Delete Linked List
     
  7. Pop operation in linked list
     
  8. Insert given node into the correct sorted position in the given sorted linked list
     
  9. Given a linked list, change it to be in sorted order
     
  10. Split the nodes of the given linked list into front and back halves
     
  11. Remove duplicates from a sorted linked list
     
  12. Move front node of the given list to the front of the another list
     
  13. Move even nodes to the end of the list in reverse order
     
  14. Split given linked list into two lists where each list containing alternating elements from it
     
  15. Construct a linked list by merging alternate nodes of two given lists
     
  16. Merge given sorted linked lists into one
     
  17. Merge Sort Algorithm for Singly Linked List
     
  18. Intersection of two given sorted linked lists
     
  19. Reverse linked list | Part 1 (Iterative Solution)
     
  20. Reverse linked list | Part 2 (Recursive Solution)
     
  21. Reverse every group of k nodes in given linked list
     
  22. Find K’th node from the end in a linked list
     
  23. Merge alternate nodes of two linked lists into the first list
     
  24. Merge two sorted linked lists from their end
     
  25. Delete every N nodes in a linked list after skipping M nodes
     
  26. Rearrange linked list in specific manner in linear time
     
  27. Check if linked list is palindrome or not
     
  28. Move last node to front in a given Linked List
     
  29. Rearrange the linked list in specific manner
     
  30. Detect Cycle in a linked list (Floyd’s Cycle Detection Algorithm)
     
  31. Sort linked list containing 0’s, 1’s and 2’s
     
  32. Stack Implementation using Linked List
     
  33. Queue Implementation using Linked List
     
  34. Remove duplicates from a linked list
     
  35. Rearrange the linked list so that it has alternating high, low values
     
  36. Rearrange a Linked List by Separating Odd Nodes from the Even Ones
     
  37. Calculate height of a binary tree with leaf nodes forming a circular doubly linked list
     
  38. XOR Linked List: Overview and Implementation
     
  39. Convert a multilevel linked list to a singly linked list
     

Matrix

 

  1. Print Matrix in Spiral Order
     
  2. Create Spiral Matrix from given array
     
  3. Shift all matrix elements by 1 in Spiral Order
     
  4. Find Shortest path from source to destination in a matrix that satisfies given constraints
     
  5. Change all elements of row i and column j in a matrix to 0 if cell (i, j) has value 0
     
  6. Print diagonal elements of the matrix having positive slope
     
  7. Find all paths from first cell to last cell of a matrix
     
  8. Replace all occurrences of 0 that are not surrounded by 1 in a binary matrix
     
  9. In-place rotate the matrix by 90 degrees in clock-wise direction
     
  10. Count negative elements present in sorted matrix in linear time
     
  11. Report all occurrences of an element in row wise and column wise sorted matrix in linear time
     
  12. Calculate sum of all elements in a sub-matrix in constant time
     
  13. Find maximum sum K x K sub-matrix in a given M x N matrix
     
  14. Find maximum sum submatrix present in a given matrix
     
  15. Find probability that a person is alive after taking N steps on the island
     
  16. Count the number of islands
     
  17. Flood fill Algorithm
     
  18. Find shortest safe route in a field with sensors present
     
  19. Find all occurrences of given string in a character matrix
     
  20. Shortest path in a Maze | Lee algorithm
     
  21. Check if given matrix is Toeplitz matrix or not
     
  22. In-place rotate the matrix by 180 degrees
     
  23. Fill Binary Matrix with Alternating Rectangles of 0 and 1
     
  24. Find all common elements present in every row of given matrix
     
  25. Construct a Binary Tree from Ancestor Matrix
     
  26. Find common elements present in all rows of a matrix
     
  27. Find index of the row containing maximum number of 1’s in a binary matrix
     
  28.  
     

  29. Travelling Salesman Problem using Branch and Bound
     
  30. Collect maximum points in a matrix by satisfying given constraints
     
  31. Count number of paths in a matrix with given cost to reach destination cell
     
  32. Find longest sequence formed by adjacent numbers in the matrix
     
  33. Find the minimum cost to reach last cell of the matrix from its first cell
     
  34. Matrix Chain Multiplication
     
  35. Find size of largest square sub-matrix of 1’s present in given binary matrix
     
  36. Chess Knight Problem – Find Shortest path from source to destination
     
  37. Find Duplicate rows in a binary matrix
     
  38. Print all possible solutions to N Queens problem
     
  39. Print all Possible Knight’s Tours in a chessboard
     
  40. Find Shortest Path in Maze
     
  41. Find Longest Possible Route in a Matrix
     
  42. Calculate size of the largest plus of 1’s in binary matrix
     
  43. Find the maximum value of M[c][d] – M[a][b] over all choices of indexes
     
  44. Find shortest distance of every cell from landmine in a Maze
     
  45. Find shortest route in a device to construct the given string
     

Queue

 

  1. Queue Implementation
     
  2. Queue Implementation using Linked List
     
  3. Chess Knight Problem – Find Shortest path from source to destination
     
  4. Shortest path in a Maze | Lee algorithm
     
  5. Find shortest safe route in a field with sensors present
     
  6. Flood fill Algorithm
     
  7. Count the number of islands
     
  8. Find Shortest path from source to destination in a matrix that satisfies given constraints
     
  9. Generate binary numbers between 1 to N
     
  10. Calculate height of a binary tree | Iterative & Recursive
     
  11. Delete given Binary Tree | Iterative & Recursive
     
  12. Level Order Traversal of Binary Tree
     
  13. Spiral Order Traversal of Binary Tree
     
  14. Reverse Level Order Traversal of Binary Tree
     
  15. Print all nodes of a given binary tree in specific order
     
  16. Print left view of binary tree
     
  17. Find next node in same level for given node in a binary tree
     
  18. Check if given binary tree is complete binary tree or not
     
  19. Print Diagonal Traversal of Binary Tree
     
  20. Print corner nodes of every level in binary tree
     
  21. Invert given Binary Tree | Recursive and Iterative solution
     
  22. Minimum number of throws required to win Snake and Ladder game
     
  23. Find shortest distance of every cell from landmine in a Maze
     
  24. Convert a multilevel linked list to a singly linked list
     
  25. Breadth First Search (BFS) | Iterative & Recursive Implementation
     
  26. Check if an undirected graph contains cycle or not
     
  27. Find maximum cost path in graph from given source to destination
     
  28. Find maximum cost path in graph from given source to destination
     
  29. Total number of paths in given digraph from given source to destination having exactly m edges
     
  30. Least cost path in given digraph from given source to destination having exactly m edges
     

Sorting

 

  1. Insertion sort | Iterative & Recursive
     
  2. Selection sort | Iterative & Recursive
     
  3. Bubble sort | Iterative & Recursive
     
  4. Merge Sort Algorithm
     
  5. Iterative Merge Sort Algorithm (Bottom-up Merge Sort)
     
  6. Quicksort Algorithm
     
  7. Iterative Implementation of Quicksort
     
  8. Hybrid QuickSort
     
  9. Quicksort using Dutch National Flag Algorithm
     
  10. Quick Sort using Hoare’s Partitioning scheme
     
  11. External merge sort
     
  12. Counting Sort Algorithm
     
  13. Custom Sort | Sort elements by their frequency and Index
     
  14. Custom Sort | Sort elements of the array by order of elements defined by the second array
     
  15. Inversion Count of an array
     
  16. Segregate positive and negative integers in linear time
     
  17. Efficiently Sort an Array with many Duplicated Values
     
  18.  
     

  19. Find the smallest window in array sorting which will make the entire array sorted
     
  20. Find largest number possible from set of given numbers
     
  21. Move all zeros present in the array to the end
     
  22. Sort binary array in linear time
     
  23. Sort linked list containing 0’s, 1’s and 2’s
     
  24. Merge Sort Algorithm for Singly Linked List
     
  25. Group anagrams together from given list of words
     
  26. Activity Selection Problem
     
  27. Lexicographic sorting of given set of keys
     
  28. Heap Sort Algorithm
     
  29. Merge M sorted lists of variable length
     
  30. Merge M sorted lists each containing N elements
     
  31. Find all palindromic permutations of a string
     
  32. Find all lexicographically next permutations of a string sorted in ascending order
     
  33. Merge two sorted linked lists from their end
     
  34. Sort an array containing 0’s, 1’s and 2’s (Dutch national flag problem)
     
  35. Find pair with given sum in the array
     
  36. Inplace merge two sorted arrays
     
  37. Merge two arrays by satisfying given constraints
     
  38. Find maximum product of two integers in an array
     
  39. Find all distinct combinations of given length
     
  40. Find all distinct combinations of given length with repetition allowed
     
  41. Merging Overlapping Intervals
     
  42. Print all quadruplets with given sum | 4-sum problem extended
     
  43. 4 sum problem | Quadruplets with given sum
     
  44. Find two numbers with maximum sum formed by array digits
     
  45. Find a Triplet having Maximum Product in an Array
     
  46. Find Minimum Product among all Combinations of Triplets in an Array
     
  47. Find all distinct combinations of given length – Part 2
     
  48. Find the surpasser count for each element of an array
     

Stack

String

 

  1. Check if given string is a rotated palindrome or not
     
  2. Longest Palindromic Substring (Non-DP Space Optimized Solution)
     
  3. Check if repeated subsequence is present in the string or not
     
  4. Check if strings can be derived from each other by circularly rotating them
     
  5. Check if given set of moves is circular or not
     
  6. Convert given number into corresponding excel column name
     
  7. Determine if two strings are anagram or not
     
  8. Find all binary strings that can be formed from given wildcard pattern
     
  9. Find all interleavings of given strings
     
  10. Isomorphic Strings
     
  11. Find all possible palindromic substrings in a string
     
  12. Find all possible combinations of words formed from mobile keypad
     
  13. Find all possible combinations by replacing given digits with characters of the corresponding list
     
  14. Find all words from given list that follows same order of characters as given pattern
     
  15. Find first k non-repeating characters in a string in single traversal
     
  16. Group anagrams together from given list of words
     
  17. Introduction to Pattern Matching
     
  18. Inplace remove all occurrences of ‘AB’ and ‘C’ from the string
     
  19. Longest even length palindromic sum substring
     
  20. Print string in zig-zag form in k rows
     
  21. Reverse given text without reversing the individual words
     
  22. Run Length Encoding (RLE) data compression algorithm
     
  23. Validate an IP address
     
  24. Find the longest substring of given string containing k distinct characters
     
  25. Find all palindromic permutations of a string
     
  26. Find all substrings of a string that are permutation of a given string
     
  27. Find the longest substring of given string containing all distinct characters
     
  28. Find all Permutations of a given string
     
  29. Iterative Approach to find Permutations of a String
     
  30. Generate all Permutations of a String in Java | Recursive & Iterative
     
  31. Find all lexicographically next permutations of a string sorted in ascending order
     
  32. Find Lexicographically minimal string rotation
     
  33. Find all strings of given length containing balanced parentheses
     
  34. Find all N-digit strictly increasing numbers (Bottom-Up and Top-Down Approach)
     
  35. Find all N-digit binary numbers having more 1’s than 0’s for any prefix
     
  36. Find all N-digit numbers with given sum of digits
     
  37. Find all N-digit binary numbers with k-bits set where k ranges from 1 to N
     
  38. Generate binary numbers between 1 to N
     
  39. Find all combinations of non-overlapping substrings of a string
     
  40. Check if given sentence is syntactically correct or not
     
  41. Calculate rank of given string among all its lexicographically sorted permutations
     
  42. Find all Lexicographic Permutations of a String
     
  43. Find all N-digit binary numbers with equal sum of bits in its two halves
     
  44. Check if given string is interleaving of two other given strings
     
  45. Difference between Subarray, Subsequence and Subset
     
  46. std::next_permutation | Overview & Implementation in C++
     
  47. std::prev_permutation | Overview & Implementation in C++
     
  48. Implementation of KMP Algorithm
     
  49. Reverse String without using Recursion
     
  50. Reverse given string using Recursion
     
  51. Reverse a String in Java in 10 different ways
     
  52. Determine if a given string is palindrome or not
     
  53. In-place remove all adjacent duplicates from the given string
     
  54. Find the minimum number of inversions needed to make the given expression balanced
     
  55. Replace all non-overlapping occurrences of the pattern
     
  56. Construct the longest palindrome by shuffling or deleting characters from a string
     
  57. Determine if characters of a String follows a specified order or not
     
  58. Print all combinations of phrases that can be formed by picking words from each of the given lists
     
  59. Remove all extra spaces from a string
     
  60. Break a string into all possible combinations of non-overlapping substrings
     
  61. Remove adjacent duplicate characters from a string
     
  62. Find first non-repeating character in a string by doing only one traversal of it
     
  63. Find all N-digit numbers with equal sum of digits at even and odd index
     
  64.  
     

  65. Combinations of words formed by replacing given numbers with corresponding alphabets
     
  66. Word Break Problem
     
  67. Wildcard Pattern Matching
     
  68. Count number of times a pattern appears in given string as a subsequence
     
  69. The Levenshtein distance (Edit distance) problem
     
  70. Longest Common Subsequence | Introduction & LCS Length
     
  71. Longest Common Subsequence | Space optimized version
     
  72. Longest Common Subsequence of K-sequences
     
  73. Longest Common Subsequence | Finding all LCS
     
  74. Longest Repeated Subsequence problem
     
  75. Longest Palindromic Subsequence using Dynamic Programming
     
  76. Longest Common Substring problem
     
  77. Shortest Common Supersequence | Introduction & SCS Length
     
  78. Shortest Common Supersequence | Finding all SCS
     
  79. Shortest Common Supersequence | Using LCS
     
  80. Implement Diff Utility
     
  81. Word Break Problem | Using Trie Data Structure
     
  82. Find minimum cuts needed for palindromic partition of a string
     
  83. Check if a string is K-Palindrome or not
     
  84. Find shortest route in a device to construct the given string
     
  85. Find minimum number possible by doing at-most K swaps
     
  86. Determine if a pattern matches with a string or not
     

Trie

Greedy

Puzzles

 

  1. Clock angle problem – Find angle between hour and minute hand
     
  2. Add two numbers without using addition operator
     
  3. Generate power set of a given set
     
  4. Implement power function without using multiplication and division operators
     
  5. Print all numbers between 1 to N without using semicolon
     
  6. Swap two numbers without using third variable
     
  7. Determine the if condition to print specific output
     
  8. Find maximum, minimum of three numbers without using conditional statement and ternary operator
     
  9. Find numbers represented as sum of two cubes for two different pairs
     
  10. Print “Hello World” with empty main() function
     
  11. Tower of Hanoi Problem
     
  12. Print all numbers between 1 to N without using any loop
     
  13. Print a semicolon without using semicolon anywhere in the program
     
  14. Multiply two numbers without using multiplication operator or loops
     
  15. Find square of a number without using multiplication and division operator
     
  16. Find if a number is even or odd without using any conditional statement
     
  17. Set both elements of a binary array to 0 in single line
     
  18. Find minimum number without using conditional statement or ternary operator
     
  19. Perform Division of two numbers without using division operator (/)
     
  20. Generate 0 and 1 with 75% and 25% Probability
     
  21. Generate Desired Random Numbers With Equal Probability
     
  22. Return 0, 1 and 2 with equal Probability using the specified function
     
  23. Generate Fair Results from a Biased Coin
     
  24. Generate numbers from 1 to 7 with equal probability using specified function
     
  25. Implement Ternary Operator Without Using Conditional Expressions
     
  26. Determine if two integers are equal without using comparison and arithmetic operators
     
  27. Return 0 and 1 with equal Probability using the specified function
     
  28. Generate Random Input from an Array according to given Probabilities
     
  29. Generate Fair Results from a Biased Coin
     
  30. Magnet Puzzle
     

STL

Recursion

Hashing

 
 

Thank you all being with us. 🙂

 


Leave a Reply

avatar
  Subscribe  
newest oldest most voted
Notify of
Cliff
Guest

I personally found reading this very helpful. Read the problem, come up with a solution, compare your solution, read on to see if there is an optimization, think about the optimization, implement it, then go back and read about their optimized solution. Some problems have 4-5 stages of optimization which I found were good to read and simulates an interview better – building in small steps and increasingly getting harder.

Pratik
Guest

Instead of “bookmarking and forgetting,” I’m making this my home page so I can do one of these a day. My goal will be to use this to both practice my skills, and learn new languages.
Thanks for compiling the list!

Alison M.
Guest

Thank you for this! I think I’m going to make this my home screen as well; or set an alert to visit the site at least once a day. I’ve gone through a few technical interviews. This will help me prep, get better at programming and feel more confident overall.

Pete
Guest

Bible for interview preparation (y)

GuyverGordon
Guest

Thank you so much this. This is truly an amazing site; something that I will use quite frequently in the months to come with my studies.

Aleksander Balicki
Guest

That’s a great list worthy of study in any context.

Anon
Guest

I just wanted to leave a message of thanking you for such a great material. I want to prepare for technical interviews and I find your website to be very helpful especially the solutions provided with the problems are really good.

Juan Gonzalez
Guest

I wanted to thank the author(s) of the DP articles! They have been one of the best resources I have found online. Keep up the great work!

iko
Guest

I looked at the first problem: finding pairs in a set whose .sum is a given number. I was surprised how thorough it is described, with a naive solution, a better solution using sorting, a better solution still using hashing, a finally a link to a page describing finding such pairs in a binary tree.

Even if it’s not preparing for interviews, this is pretty interesting stuff.

Oleg Abrazhaev
Guest

This is super interesting list of questions and the best possible solutions discussed in terms of time and space efficiency (from brute force solution to the most optimum).

Kunal
Guest

Thanks I was looking for more of these challenges/questions.

Amit
Guest

This is surprisingly nice list. All problems I have encountered so far were very challenging..

michael
Guest

Good work. Keep at it!

jlash0
Guest

I flunked out of a half dozen first round technical interviews. Amazon, Microsoft, Google, a few startups, Facebook, etc. My mind would always blank out when it came to solving problems.

Anon
Guest

That’s okay. It happens to everyone. I guess the key is to practice to be uncomfortable and do mock interviews 🙂

Tanmay Jha
Guest

Man!! Your collection is just amazing. The way you have explained your stuff is fabulous. Naive method. Then Optimized methods. At times I feel that you are in my head. Great work. Keep it up. Thanks a lot. You need to promote more. This website is a gem.

Joy
Guest

As someone who recently finished a data structures class, I wish I knew about this site before today!

Jes
Guest

Awesome list. Now, I have to find a way to work through them.

Justin
Guest

Bookmarked this for when I actually know algorithms and data structures.

Cody
Guest

Thank you for the solutions. The optimization part is being really helpful.

Adam
Guest

I really like the way this page is organized…

Sean
Guest

Just found out yesterday that I’ll be having my first interview for a Google Software Engineering position in about a month. This is truly going to be invaluable, thank you!

KKK
Guest

Is it normal that I won’t be able to answer most of these questions myself ?

Pavan
Guest

nice collection (y)

Ronnie
Guest

Excellent resource!!

Dave
Guest

While obtaining the correct solution is optimal, I believe these interview questions are supposed to gauge a person’s ability to think out loud and ability to flesh out a decent plan of attack. If you start writing code immediately without asking any questions then it’s not going to end well.

henderson
Guest

This is great, thanks ^

Sandra
Guest

This is awesome. Many thanks.

Vainglory
Guest

Holy crap, this Looks awesome!!! I’m still at the point of learning stuff myself. Definitely using this to study/learn.

Vasu
Guest

Wonderful web site. I am sending it to a few buddies. Thanks to your sweat!

fan
Guest

Wow! A treasure trove!

mike
Guest

very useful, thkx~

peter
Guest

I’ve given technical tests to people in interviews before, and the problem has always been the same one, with a bit of tweaking here and there. The test lasts 90 minutes, using a laptop with an IDE.
To tell the truth I hate doing it, mainly because when I got asked to give the test, I spent some time tackling the problem myself just so I could get an idea of what was expected – I genuinely didn’t think I would have passed the new technical test for the company I was employed at!
I think that biases the interview somewhat as you sit there judging someone on a problem you’ve had the luxury of solving yourself in a more relaxed environment.
Maybe a better approach would be both interviewer and interviewee are given a problem from an independent third party. That way both of you have to work through it together, although I’m not sure of the practical realities of that.

Gabriel Wayne
Guest

Can you provide the pdf file for the solution and problems ?

Abhishek Sharma
Guest

That would be nice, but think about the website, it will reduce the number of visits, that would be real bad.

Kaushal Agrawal
Guest

Hi TechieDelight!

I would like to thank and appreciate the wonderful effort! Kudos.

There is a big issue you must address: the problem repository is awesome but there is no way one can check if his/her code is correct since you do not have an integrated judge where one can submit and see the verdict as AC/WA.

Narnia
Guest

Can anybody help with this problem
We are given m cars on a lane with their starting and ending points and length of the road n. Find the length of max gap on the road where there are no cars.

Kavya
Guest

https://www.techiedelight.com/data-structures-and-algorithms-interview-questions-stl/
above link isnt working .. Kindly help to restore it in server. It will be very helpfull

abhi
Guest

I think it is seriously a good list !! Good job.