Other Books by Alejandro
- Recommended Resources
Introduction
- Who is this book for ?
- What this book covers ?
Chapter 1: Bit Manipulation
- Check whether a given number n is a power of 2 or 0
- Count number of bits needed to be flipped to convert A to B
- Find the two non-repeating elements in an array of repeating elements
- Find the next greater and next smaller number with same number of set bits
Chapter 2: Dynamic Programming
- 0-1 Knapsack Problem
- Cutting Rod problem
- Minimum number of edits (operations) required to convert ‘str1’ into ‘str2’
- Given a 2-D matrix of 0s and 1s, find the Largest Square which contains all 1s in itself
- Given two sequences, print the longest subsequence present in both of them.
- Length of the longest subsequence in an array such that all elements of the subsequence are sorted in increasing order
- Find minimum cost path in a matrix from (0,0) to given point (m,n)
- Partition a set into two subsets such that the difference of subset sums is minimum
- Minimum number of umbrellas of m different sizes required to accomodate N people
- Determine if there is a subset of the given set with sum equal to given sum
- Given a distance ‘dist, count total number of ways to cover the distance with 1, 2 and 3 steps
Chapter 3: Graph
- Find all possible words in a board of characters
- Breadth First Search Traversal
- Depth First Search Traversal
- Detect Cycle in directed graph
- Detect cycle in undirected graph
- Dijkstra’s Shortest Path Algorithm
- Find shortest distances between each pair of vertices in a given edge weighted directed Graph
- Graph implementation
- Kruskal’s Algorithm for Minimum Spanning Tree
- Topological Sort
Chapter 4: Heaps
- Heap Sort algorithm
- Max Heap implementation
- Min Heap implementation
- Find the median for an incoming stream of numbers after each insertion in the list of numbers
Chapter 5: Linked List
- Clone a linked list with next and random pointer
- Given a linked list of line segments, remove middle points if any
- Construct a Maximum Sum Linked List out of two Sorted Linked Lists having some Common nodes.
- Merge a linked list into another linked list at alternate positions
- Perform Merge Sort
- Point to next higher value node in a linked list with an arbitrary pointer
- Find if linked list contains any cycle
- To select a random node in a singly linked list
- Find and remove cycle if any
- Reverse alternate sub list of K nodes each
- Reverse a linked list
- Bring even valued nodes to the front
- Implementation of Singly Linked List
Chapter 6: Mathematics
- Fine the number of trailing zeros in factorial of a number
- Find the greatest common divisor of 2 numbers
- Print all prime factors of a given number
- Sieve of Eratosthenes (find prime numbers up to n efficiently)
Chapter 7: Matrix
- Given the Coordinates of King and Queen on a chessboard, check if queen threatens the king
- Search in a row wise and column wise sorted matrix
- Given a 2D array, print it in spiral form
Chapter 8: Strings or Arrays
- Find the longest substring with k unique characters in a given string
- Find a pattern in a string using KMP search algorithm
- Find the Kth smallest element in the array
- Find a pair in an array with sum x
- Print all valid (properly opened and closed) combinations of n pairs of parentheses
- Reverse the order of the words in the array
- Find index of given number in a sorted array shifted by an unknown offset
- Print all permutations of a given string
- Linear Search in an array
- Binary Search in an array
- Interpolation Search in an array
- Bubble sort Algorithm
- Counting sort Algorithm (non-comparision based sorting)
- Insertion sort Algorithm
- Sort an array where each element is at most k places away from its sorted position
- Merge Sort Algorithm
- Quick Sort Algorithm using last element as pivot
- Selection sort Algorithm
Chapter 9: Tree
- Binary Search Tree implementation
- Check if a given array can represent Preorder Traversal of Binary Search Tree
- Find the in-order ancestor of a given node in BST
- Find the Lowest Common Ancestor
- Given a sorted array, create a BST with minimal height
- Print Nodes in Bottom View of Binary Tree
- Check if a binary tree is height balanced
- Check whether a binary tree is a full binary tree or not
- Given two binary trees, check if the first tree is subtree of the second one
- Find the Lowest Common Ancestor in a Binary Tree
- Create a list of all nodes at each depth
- Find the maximum path sum i.e. max sum of a path in a binary tree
- Find minimum depth of a binary tree
- Remove nodes on root to leaf paths of length < K
- Given a Perfect Binary Tree, reverse the alternate level nodes of the tree
- Print Nodes in Top View of Binary Tree
- Implementation of Trie data structure