Array
Find pair with given sum in the array
Find sub-array with 0 sum
Sort binary array in linear time
Find a duplicate element in a limited range array
Find largest sub-array formed by consecutive integers
Find maximum length sub-array having given sum
Find maximum length sub-array having equal number of 0’s and 1’s
Sort an array containing 0’s, 1’s and 2’s(Dutch national flag problem)
Inplace merge two sorted arrays
Merge two arrays by satisfying given constraints
Find index of 0 to replaced to get maximum length sequence of continuous ones
Find maximum product of two integers in an array
Shuffle a given array of elements (Fisher–Yates shuffle)
Rearrange the array with alternate high and low elements
Find equilibrium index of an array
Find majority element in an array (Boyer–Moore majority vote algorithm)
Move all zeros present in the array to the end
Replace each element of array with product of every other element without using / operator
Find Longest Bitonic Subarray in an array
Find maximum difference between two elements in the array by satisfying given constraints
Maximum subarray problem (Kadane’s algorithm)
Maximum Sum Circular Subarray
Find all distinct combinations of given length
Find all distinct combinations of given length with repetition allowed
Find maximum sequence of continuous 1’s formed by replacing at-most k zeroes by ones
Find minimum sum subarray of given size k
Find subarray having given sum in given array of integers
Find the length of smallest subarray whose sum of elements is greater than the given number
Find largest number possible from set of given numbers
Find the smallest window in array sorting which will make the entire array sorted
Find maximum sum path involving elements of given arrays
Maximum profit earned by buying and selling shares any number of times
Trapping Rain Water within given set of bars
Longest Increasing Subsequence
Find maximum product subarray in a given array
Find maximum sum of subsequence with no adjacent elements
Find minimum platforms needed in the station so to avoid any delay in arrival of any train
Length of longest continuous sequence with same sum in given binary arrays
Merging Overlapping Intervals
Activity Selection Problem
Job Sequencing Problem with Deadlines
Introduction to Priority Queues using Binary Heaps
Min Heap and Max Heap Implementation in C++
Heap Sort (Out-of-place and In-place implementation in C++ and C)
Check if given array represents min heap or not
Convert Max Heap to Min Heap in linear time
Find K’th largest element in an array
Sort a K-Sorted Array
Merge M sorted lists of variable length
Find K’th smallest element in an array
Find smallest range with at-least one element from each of the given lists
Merge M sorted lists each containing N elements
Insertion sort | Iterative & Recursive
Selection sort | Iterative & Recursive
Bubble sort | Iterative & Recursive
Merge Sort
Quicksort
Iterative Implementation of Quicksort
Hybrid QuickSort
External merge sort
Custom Sort | Sort elements by their frequency and Index
Custom Sort | Sort elements of the array by order of elements defined by the second array
Inversion Count of an array
Segregate positive and negative integers in linear time
Binary Search
Ternary Search vs Binary search
Interpolation search
Exponential search
Find number of rotations in a circularly sorted array
Search an element in a circular sorted array
Find first or last occurrence of a given number in a sorted array
Count occurrences of a number in a sorted array with duplicates
Find smallest missing element from a sorted array
Find Floor and Ceil of a number in a sorted array
Search in a nearly sorted array in O(logn) time
Find number of 1’s in a sorted binary array
Find the peak element in an array
Maximum Sum Subarray using Divide & Conquer
Find Minimum and Maximum element in an array using minimum comparisons
Matrix Chain Multiplication
0-1 Knapsack problem
Maximize value of the expression A[s] – A[r] + A[q] – A[p] where s > r > q > p
Partition problem
Subset sum problem
Minimum Sum Partition problem
Rod Cutting
Coin change-making problem (unlimited supply of coins)
Coin Change Problem – Find total number of ways to get the denomination of coins
Longest alternating subsequence
Combinations of words formed by replacing given numbers with corresponding English alphabets
Decode the given sequence to construct minimum number without repeated digits
All combinations of elements satisfiying given constraints
Backtracking
Print all possible solutions to N Queens problem
Print all Possible Knight’s Tours in a chessboard
Magnet Puzzle
Find Shortest Path in Maze
Find Longest Possible Route in a Matrix
Find path from source to destination in a matrix that satisfies given constraints
Find total number of unique paths in a maze from source to destination
Print All Hamiltonian Path present in a graph
Print all k-colorable configurations of the graph (Vertex coloring of graph)
Find all Permutations of a given string
All combinations of elements satisfiying given constraints
Find all binary strings that can be formed from given wildcard pattern
Binary
Bit Hacks – Part 1 (Basic)
Bit Hacks – Part 2 (Playing with k’th bit)
Bit Hacks – Part 3 (Playing with rightmost set bit of a number)
Bit Hacks – Part 4 (Playing with letters of English alphabet)
Bit Hacks – Part 5 (Find absolute value of an integer without branching)
Bit Hacks – Part 6 (Random Problems)
Brian Kernighan’s Algorithm to count set bits in an integer
Compute parity of a number using lookup table
Count set bits using lookup table
Find the minimum or maximum of two integers without using branching
Multiply 16-bit integers using 8-bit multiplier
Round up to the next highest power of 2
Round up to the previous power of 2
Swap individual bits at given position in an integer
Reverse Bits of a given Integer
Generate binary numbers between 1 to N
Efficiently implement power function | Recursive and Iterative
Find square of a number without using multiplication and division operator | 3 methods
Generate power set of a given set
Huffman Coding
Binary Tree
Check if two given binary trees are identical or not | Iterative & Recursive
Calculate height of a binary tree | Iterative & Recursive
Delete given Binary Tree | Iterative & Recursive
Inorder Tree Traversal | Iterative & Recursive
Preorder Tree Traversal | Iterative & Recursive
Postorder Tree Traversal | Iterative & Recursive
Level Order Traversal of Binary Tree
Spiral Order Traversal of Binary Tree
Reverse Level Order Traversal of Binary Tree
Print all nodes of a given binary tree in specific order
Print left view of binary tree
Print Bottom View of Binary Tree
Print Top View of Binary Tree
Find next node in same level for given node in a binary tree
Check if given binary tree is complete binary tree or not
Determine if given two nodes are cousins of each other
Print cousins of given node in a binary tree
In-place convert given binary tree to its sum tree
Check if given binary tree is a sum tree or not
Combinations of words formed by replacing given numbers with corresponding English alphabets
Determine if given binary tree is a subtree of another binary tree or not
Find diameter of a binary tree
Check if given binary Tree has symmetric structure or not
Convert binary tree to its mirror
Check if binary tree can be converted to another by doing any no. of swaps of left & right child
Find Lowest Common Ancestor (LCA) of two nodes in a binary tree
Print all paths from root to leaf nodes in given binary tree
Find ancestors of given node in a Binary Tree
Find the distance between given pairs of nodes in a binary tree
Find Vertical Sum in a given Binary Tree
Print nodes in vertical order of a given Binary Tree (Vertical Traversal)
Find the diagonal sum of given binary tree
Print Diagonal Traversal of Binary Tree
Print corner nodes of every level in binary tree
In-place convert convert given Binary Tree to Doubly Linked List
Sink nodes containing zero to the bottom of the binary tree
Convert given binary tree to full tree by removing half nodes
Truncate given binary tree to remove nodes which lie on a path having sum less than K
Find maximum sum root-to-leaf path in a binary tree
Check if given binary tree is height balanced or not
Determine if given Binary Tree is a BST or not
Binary Search Tree (BST)
Insertion in BST
Search given key in BST
Deletion from BST
Construct balanced BST from given keys
Determine if given Binary Tree is a BST or not
Check if given keys represents same BSTs or not without building the BST
Find inorder predecessor for given key in a BST
Find Lowest Common Ancestor (LCA) of two nodes in a Binary Search Tree
Find K’th smallest and K’th largest element in BST
Floor and Ceil in a Binary Search Tree
Find optimal cost to construct binary search tree
Divide & Conquer
Binary Search
Ternary Search vs Binary search
Exponential search
Interpolation search
Find number of rotations in a circularly sorted array
Search an element in a circular sorted array
Find first or last occurrence of a given number in a sorted array
Count occurrences of a number in a sorted array with duplicates
Find smallest missing element from a sorted array
Find Floor and Ceil of a number in a sorted array
Search in a nearly sorted array in O(logn) time
Find number of 1’s in a sorted binary array
Find the peak element in an array
Maximum Sum Subarray using Divide & Conquer
Find Minimum and Maximum element in an array using minimum comparisons
Efficiently implement power function | Recursive and Iterative
Merge Sort
Merge Sort for Singly Linked List
Inversion Count of an array
Quicksort
Iterative Implementation of Quicksort
Hybrid QuickSort
Dynamic Programming
Introduction to Dynamic Programming
Longest Common Subsequence | Introduction & LCS Length
Longest Common Subsequence | Space optimized version
Longest Common Subsequence of K-sequences
Longest Common Subsequence | Finding all LCS
Longest Common Substring problem
Longest Palindromic Subsequence using Dynamic Programming
Longest Repeated Subsequence problem
Shortest Common Supersequence | Introduction & SCS Length
Shortest Common Supersequence | Finding all SCS
Shortest Common Supersequence | Using LCS
Longest Increasing Subsequence using Dynamic Programming
Longest Bitonic Subsequence
Increasing Subsequence with Maximum Sum
The Levenshtein distance (Edit distance) problem
Find size of largest square sub-matrix of 1’s present in given binary matrix
Matrix Chain Multiplication
Find the minimum cost to reach last cell of the matrix from its first cell
Find longest sequence formed by adjacent numbers in the matrix
Count number of paths in a matrix with given cost to reach destination cell
0-1 Knapsack problem
Maximize value of the expression A[s] – A[r] + A[q] – A[p] where s > r > q > p
Partition problem
Subset sum problem
Minimum Sum Partition problem
Find all N-digit binary strings without any consecutive 1’s
Rod Cutting
Maximum Product Rod Cutting
Coin change-making problem (unlimited supply of coins)
Coin Change Problem – Find total number of ways to get the denomination of coins
Longest alternating subsequence
Count number of times a pattern appears in given string as a subsequence
Collect maximum points in a matrix by satisfying given constraints
Count total possible combinations of N-digit numbers in a mobile keypad
Find optimal cost to construct binary search tree
Word Break Problem
Wildcard Pattern Matching
Find probability that a person is alive after taking N steps on the island
Calculate sum of all elements in a sub-matrix in constant time
Find maximum sum K x K sub-matrix in a given M x N matrix
Find maximum sum submatrix present in a given matrix
Find maximum sum of subsequence with no adjacent elements
Maximum subarray problem (Kadane’s algorithm)
Single-Source Shortest Paths – Bellman Ford Algorithm
All-Pairs Shortest Paths – Floyd Warshall Algorithm
Graphs
Terminology and Representations of Graphs
Graph Implementation using STL
Graph Implementation in C++ without using STL
Breadth First Search (BFS) | Iterative & Recursive Implementation
Depth First Search (DFS) | Iterative & Recursive Implementation
Arrival and Departure Time of Vertices in DFS
Types of edges involved in DFS and relation between them