500+ Data Structures and Algorithms practice 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 replaced 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
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.Merging Overlapping Intervals
89.Job Sequencing Problem with Deadlines
90.Introduction to Priority Queues using Binary Heaps
91.Min Heap and Max Heap Implementation in C++
92.Min Heap and Max Heap Implementation in Java
93.Heap Sort (Out-of-place and In-place implementation in C++ and C)
94.Check if given array represents min heap or not
95.Convert Max Heap to Min Heap in linear time
96.Find K’th largest element in an array
98.Merge M sorted lists of variable length
99.Find K’th smallest element in an array
100.Find smallest range with at-least one element from each of the given lists
101.Merge M sorted lists each containing N elements
102.Insertion sort | Iterative & Recursive
103.Selection sort | Iterative & Recursive
104.Bubble sort | Iterative & Recursive
107.Iterative Implementation of Quicksort
109.Quicksort using Dutch National Flag Algorithm
110.Quick Sort using Hoare’s Partitioning scheme
112.Custom Sort | Sort elements by their frequency and Index
113.Custom Sort | Sort elements of the array by order of elements defined by the second array
114.Inversion Count of an array
115.Segregate positive and negative integers in linear time
117.Ternary Search vs Binary search
120.Find number of rotations in a circularly sorted array
121.Search an element in a circular sorted array
122.Find first or last occurrence of a given number in a sorted array
123.Count occurrences of a number in a sorted array with duplicates
124.Find smallest missing element from a sorted array
125.Find Floor and Ceil of a number in a sorted array
126.Search in a nearly sorted array in O(logn) time
127.Find number of 1’s in a sorted binary array
128.Find the peak element in an array
129.Maximum Sum Subarray using Divide & Conquer
130.Find Minimum and Maximum element in an array using minimum comparisons
131.Matrix Chain Multiplication
133.Maximize value of the expression
136.Minimum Sum Partition problem
138.Coin change-making problem (unlimited supply of coins)
139.Coin Change Problem (Total number of ways to get the denomination of coins)
140.Longest alternating subsequence
141.Combinations of words formed by replacing given numbers with corresponding alphabets
142.Decode the given sequence to construct minimum number without repeated digits
143.All combinations of elements satisfying given constraints
144.Find Missing Term in a Sequence in log(n) time
145.Print all distinct Subsets of a given Set
146.Find Floor and Ceil of a number in a sorted array (Recursive solution)
147.Set both elements of a binary array to 0 in single line
148.K-Partition Problem | Printing all Partitions
150.3-partition problem extended | Print all partitions
151.Iterative Merge Sort Algorithm (Bottom-up Merge Sort)
152.Find two duplicate elements in an limited range array (using XOR)
153.Find missing number and duplicate elements in an array
154.Find Minimum and Maximum element in an array by doing minimum comparisons
155.Find Frequency of each element in a sorted array containing duplicates
156.Difference between Subarray, Subsequence and Subset
Backtracking
1.Print all possible solutions to N Queens problem
2.Print all Possible Knight’s Tours in a chessboard
4.Find Longest Possible Route in a Matrix
5.Find path from source to destination in a matrix that satisfies given constraints
6.Find total number of unique paths in a maze from source to destination
7.Print All Hamiltonian Path present in a graph
8.Print all k-colorable configurations of the graph (Vertex coloring of graph)
9.Find all Permutations of a given string
10.All combinations of elements satisfying given constraints
11.Find all binary strings that can be formed from given wildcard pattern
12.K-Partition Problem | Printing all Partitions
14.Find ways to calculate a target from elements of specified array
15.Find minimum number possible by doing at-most K swaps
16.Determine if a pattern matches with a string or not
Binary
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 Number
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.Generate binary numbers between 1 to N
33.Efficiently implement power function | Recursive and Iterative
34.Find square of a number without using multiplication and division operator | 3 methods
35.Generate power set of a given set
37.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 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
BST
4.Construct balanced BST from given keys
5.Determine if given Binary Tree is a BST or not
6.Check if given keys represents same BSTs or not without building the BST
7.Find inorder predecessor for given key in a BST
8.Find Lowest Common Ancestor (LCA) of two nodes in a Binary Search Tree
9.Find K’th smallest and K’th largest element in BST
10.Floor and Ceil in a Binary Search Tree
11.Find optimal cost to construct binary search tree
12.Convert a Binary Tree to BST by maintaining its original structure
13.Remove nodes from BST that have keys outside the valid range
14.Find a pair with given sum in a BST
15.Find inorder successor for given key in a BST
16.Replace every element of an array with the least greater element on its right
Divide & Conquer
2.Find number of rotations in a circularly sorted array
3.Search an element in a circular sorted array
4.Find first or last occurrence of a given number in a sorted array
5.Count occurrences of a number in a sorted array with duplicates
6.Find smallest missing element from a sorted array
7.Find Floor and Ceil of a number in a sorted array
8.Search in a nearly sorted array in O(logn) time
9.Find number of 1’s in a sorted binary array
10.Find the peak element in an array
11.Maximum Sum Subarray using Divide & Conquer
12.Find Minimum and Maximum element in an array using minimum comparisons
13.Efficiently implement power function | Recursive and Iterative
14.Find Missing Term in a Sequence in log(n) time
15.Division of Two Numbers using Binary Search Algorithm
16.Find Floor and Ceil of a number in a sorted array (Recursive solution)
17.Find Minimum and Maximum element in an array by doing minimum comparisons
18.Find Frequency of each element in a sorted array containing duplicates
19.Ternary Search vs Binary search
23.Iterative Merge Sort Algorithm (Bottom-up Merge Sort)
24.Merge Sort Algorithm for Singly Linked List
25.Inversion Count of an array
27.Iterative Implementation of Quicksort
29.Quicksort using Dutch National Flag Algorithm
30.Quick Sort using Hoare’s Partitioning scheme
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
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
23.Maximize value of the expression
26.Minimum Sum Partition problem
27.Find all N-digit binary strings without any consecutive 1’s
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
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
43.Find probability that a person is alive after taking N steps on the island
44.Calculate sum of all elements in a sub-matrix in constant time
45.Find maximum sum K x K sub-matrix in a given M x N matrix
46.Find maximum sum submatrix present in a given matrix
47.Find maximum sum of subsequence with no adjacent elements
48.Maximum subarray problem (Kadane’s algorithm)
49.Single-Source Shortest Paths — Bellman Ford Algorithm
50.All-Pairs Shortest Paths — Floyd Warshall Algorithm
51.Longest Decreasing Subsequence Problem
52.Pots of Gold Game using Dynamic Programming
53.Find minimum cuts needed for palindromic partition of a string
54.Maximum Length Snake Sequence
56.Calculate size of the largest plus of 1’s in binary matrix
57.Check if given string is interleaving of two other given strings
58.Longest Increasing Subsequence using LCS
59.Determine negative-weight cycle in a graph
Graphs
1.Terminology and Representations of Graphs
2.Graph Implementation using STL
3.Graph Implementation in C++ without using STL
4.Implement Graph Data Structure 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
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.Print all k-colorable configurations of the graph (Vertex coloring of graph)
36.Print All Hamiltonian Path present in a graph
Heap
1.Introduction to Priority Queues using Binary Heaps
2.Min Heap and Max Heap Implementation in C++
3.Min Heap and Max Heap Implementation in Java
5.Check if given array represents min heap or not
6.Convert Max Heap to Min Heap in linear time
7.Find K’th largest element in an array
9.Merge M sorted lists of variable length
10.Find K’th smallest element in an array
11.Find smallest range with at-least one element from each of the given lists
12.Merge M sorted lists each containing N elements
15.Find first k maximum occurring words in given set of strings
16.Find first k non-repeating characters in a string in single traversal
Linked List
1.Introduction to Linked Lists
2.Linked List Implementation | Part 1
3.Linked List Implementation | Part 2
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
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
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.Travelling Salesman Problem using Branch and Bound
28.Collect maximum points in a matrix by satisfying given constraints
29.Count number of paths in a matrix with given cost to reach destination cell
30.Find longest sequence formed by adjacent numbers in the matrix
31.Find the minimum cost to reach last cell of the matrix from its first cell
32.Matrix Chain Multiplication
33.Find size of largest square sub-matrix of 1’s present in given binary matrix
34.Chess Knight Problem — Find Shortest path from source to destination
35.Find Duplicate rows in a binary matrix
36.Print all possible solutions to N Queens problem
37.Print all Possible Knight’s Tours in a chessboard
39.Find Longest Possible Route in a Matrix
40.Calculate size of the largest plus of 1’s in binary matrix
41.Find the maximum value of M[c][d] — M[a][b] over all choices of indexes
42.Find shortest distance of every cell from landmine in a Maze
43.Find shortest route in a device to construct the given string
Queue
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
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.Breadth First Search (BFS) | Iterative & Recursive Implementation
22.Minimum number of throws required to win Snake and Ladder game
23.Check if an undirected graph contains cycle or not
24.Invert given Binary Tree | Recursive and Iterative solution
25.Find maximum cost path in graph from given source to destination
26.Find shortest distance of every cell from landmine in a Maze
Sorting
1.Insertion sort | Iterative & Recursive
2.Selection sort | Iterative & Recursive
3.Bubble sort | Iterative & Recursive
5.Iterative Merge Sort Algorithm (Bottom-up Merge Sort)
7.Iterative Implementation of Quicksort
9.Quicksort using Dutch National Flag Algorithm
10.Quick Sort using Hoare’s Partitioning scheme
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.Find the smallest window in array sorting which will make the entire array sorted
19.Find largest number possible from set of given numbers
20.Move all zeros present in the array to the end
21.Sort binary array in linear time
22.Sort linked list containing 0’s, 1’s and 2’s
23.Merge Sort Algorithm for Singly Linked List
24.Group anagrams together from given list of words
26.Lexicographic sorting of given set of keys
28.Merge M sorted lists of variable length
29.Merge M sorted lists each containing N elements
30.Find all palindromic permutations of a string
31.Find all lexicographically next permutations of a string sorted in ascending order
32.Merge two sorted linked lists from their end
33.Sort an array containing 0’s, 1’s and 2’s (Dutch national flag problem)
34.Find pair with given sum in the array
35.Inplace merge two sorted arrays
36.Merge two arrays by satisfying given constraints
37.Find maximum product of two integers in an array
38.Find all distinct combinations of given length
39.Find all distinct combinations of given length with repetition allowed
40.Merging Overlapping Intervals
41.Print all quadruplets with given sum | 4-sum problem extended
42.4 sum problem | Quadruplets with given sum
43.Find two numbers with maximum sum formed by array digits
44.Find a Triplet having Maximum Product in an Array
45.Find Minimum Product among all Combinations of Triplets in an Array
46.Find all distinct combinations of given length — Part 2
47.Find the surpasser count for each element of an array
Stack
2.Stack Implementation using Linked List
3.Check if given expression is balanced expression or not
4.Find duplicate parenthesis in an expression
5.Evaluate given postfix expression
6.Decode the given sequence to construct minimum number without repeated digits
7.Inorder Tree Traversal | Iterative & Recursive
8.Preorder Tree Traversal | Iterative & Recursive
9.Postorder Tree Traversal | Iterative & Recursive
10.Find ancestors of given node in a Binary Tree
11.Check if two given binary trees are identical or not | Iterative & Recursive
12.Reverse given text without reversing the individual words
13.Find all binary strings that can be formed from given wildcard pattern
14.Iterative Implementation of Quicksort
15.Depth First Search (DFS) | Iterative & Recursive Implementation
16.Invert given Binary Tree | Recursive and Iterative solution
17.Print leaf to root path for every leaf node in a binary tree
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
11.Find all possible palindromic substrings in a string
12.Find all possible combinations of words formed from mobile keypad
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 palidromic 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
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 in C++ and Java
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 in C, C++ and Java
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
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.Combinations of words formed by replacing given numbers with corresponding alphabets
65.Count number of times a pattern appears in given string as a subsequence
66.The Levenshtein distance (Edit distance) problem
67.Longest Common Subsequence | Introduction & LCS Length
68.Longest Common Subsequence | Space optimized version
69.Longest Common Subsequence of K-sequences
70.Longest Common Subsequence | Finding all LCS
71.Longest Repeated Subsequence problem
72.Longest Palindromic Subsequence using Dynamic Programming
73.Longest Common Substring problem
74.Shortest Common Supersequence | Introduction & SCS Length
75.Shortest Common Supersequence | Finding all SCS
76.Shortest Common Supersequence | Using LCS
78.Word Break Problem | Using Trie Data Structure
79.Find minimum cuts needed for palindromic partition of a string
80.Check if a string is K-Palindrome or not
81.Find shortest route in a device to construct the given string
82.Find minimum number possible by doing at-most K swaps
83.Determine if a pattern matches with a string or not
Trie
1.Trie Implementation | Insert, Search and Delete
2.Memory efficient Trie Implementation using Map | Insert, Search and Delete
3.C++ Implementation of Trie Data Structure
4.Longest Common Prefix in given set of strings (using Trie)
5.Lexicographic sorting of given set of keys
6.Find maximum occurring word in given set of strings
7.Find first k maximum occurring words in given set of strings
8.Find Duplicate rows in a binary matrix
9.Word Break Problem | Using Trie Data Structure
Greedy
3.Shortest Superstring Problem
4.Job Sequencing Problem with Deadlines
6.Kruskal’s Algorithm for finding Minimum Spanning Tree
7.Single-Source Shortest Paths — Dijkstra’s Algorithm
Puzzles
1.Clock angle problem — Find angle between hour and minute hand
2.Add two numbers without using addition operator | 4 methods
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 | 5 methods
7.Determine the if condition to print specific output
9.Find numbers represented as sum of two cubes for two different pairs
10.Print “Hello World” with empty main() function | 3 methods
12.Print all numbers between 1 to N without using any loop | 4 methods
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 | 3 methods
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