Data Structures and Algorithms for Job Interviews
Data Structures and Algorithms for Job Interviews
Prep for the interview and get the job you want
About the Book
Land the Software Engineer job you want by mastering one of the most challenging questions you might face during the interview. This book is a collection of Data Structures and Algorithms to train and win the Interview.
Get ahead of the competition by solving a wide variety of coding problems !!
All the problems are solved in Python code.
The book is divided in 9 chapters covering:
 Bit Manipulation.
 Dynamic Programming.
 Graph.
 Heaps.
 Linked List.
 Mathematics.
 Matrix.
 Strings or Arrays.
 Tree.
Check out other books from the author:
Front End Developer Interview Questions
Table of Contents

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 nonrepeating 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
 01 Knapsack Problem
 Cutting Rod problem
 Minimum number of edits (operations) required to convert ‘str1’ into ‘str2’
 Given a 2D 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 (noncomparision 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 inorder 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
 Keep developing your programming skills
 About the Author
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 nonrefunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books inprogress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copyprotection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them