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
Authors have earned$9,661,401writing, publishing and selling on Leanpub, earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.
Learn more about writing on Leanpub
The Leanpub 45day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
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), EPUB (for phones and tablets) and MOBI (for 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
Top Books
El Manual del Manager
Keyvan Akbary, Félix López, and Álvaro Salazar¿Has deseado alguna vez el haber tenido una buena introducción al rol del Engineering Manager? En este libro aprenderás lo necesario para ejercer el rol de una manera efectiva: Expectativas y Responsabilidades del Rol, 11s, Ayudar a Crecer, Objetivos, Planes de Carrera, Cultura, Feedback, Contratación, Cultura de Producto y mucho más.
Functional Design and Architecture
Alexander GraninSoftware Design in Functional Programming, Design Patterns and Practices, Methodologies and Application Architectures. How to build real software in Haskell with less efforts and low risks. The first complete source of knowledge.
CCIE Service Provider Version 4 Written and Lab Exam Comprehensive Guide
Nicholas RussoThe service provider landscape has changed rapidly over the past several years. Networking vendors are continuing to propose new standards, techniques, and procedures for overcoming new challenges while concurrently reducing costs and delivering new services. Cisco has recently updated the CCIE Service Provider track to reflect these changes; this book represents the author's personal journey in achieving that certification.
CCIE SP v4.1  Workbook
Łukasz Bromirski, Piotr Jablonski, and Nicholas RussoAre you striving to prepare to and pass CCIE SP lab exam? Take the opportunity and get this workbook! With the attached initial cfg files you will prepare yourself for the CCIE SP exam as well as learn SP technologies applicable to all kinds of today modern networks! This workbook covers blueprint topics and provides challenging examples.
Ansible for Kubernetes
Jeff GeerlingAnsible is a powerful infrastructure automation tool. Kubernetes is a powerful application deployment platform. Learn how to use these tools to automate massivelyscalable, highlyavailable infrastructure.
Ansible for DevOps
Jeff GeerlingAnsible is a simple, but powerful, server and configuration management tool. Learn to use Ansible effectively, whether you manage one server—or thousands.
Code Faster in Delphi
Alister ChristieThis book will make you a faster Delphi developer, it doesn't matter if you are just starting out, or have been using Delphi since version 1, you will find all sorts of tips, tricks and hacks to boost your productivity.
Practical FP in Scala: A handson approach
Gabriel VolpeA practical book aimed for those familiar with functional programming in Scala who are yet not confident about architecting an application from scratch.
Together, we will develop a purely functional application using the best libraries in the Cats ecosystem, while learning about design patterns and best practices.
R Programming for Data Science
Roger D. PengThis book brings the fundamentals of R programming to you, using the same material developed as part of the industryleading Johns Hopkins Data Science Specialization. The skills taught in this book will lay the foundation for you to begin your journey learning data science. Printed copies of this book are available through Lulu.
Cloud Strategy
Gregor Hohpe“Strategy is the difference between making a wish and making it come true.” A successful migration to the cloud shouldn’t be driven by wishes, but guided by a sound strategy, frameworks, and decision models. This book tells you how—without becoming superficial nor getting lost in technology and product details.
Top Bundles
 #1
Quality Software
11 Books
The Quality Software Bundle is for managers, wouldbe managers, and any of us who find themselves being managed and confused. This comprehensive bundle covers the entire span of software development approaches, from hacking through waterfall, cascade, prototyping, Iterative enhancement, reusable code, offtheshelf, to Agile teams. The bundle...  #2
Growing Agile: The Complete Coach's Guide
7 Books
Growing Agile: Coach's Guide Series This bundle provides a collection of training and workshop plans for a variety of agile topics. The series is aimed at agile coaches, trainers and ScrumMasters who often find themselves needing to help teams understand agile concepts. Each book in the series provides the plans, slides, handouts and activity...  #3
agile
11 Books
In this bundle, you will find 10 different agile books. They are about different aspects of being agile.  finding a job  doing coding dojo's  Retrospectives  Personal kanban  a nontypical coaching book and even a book that gives you an insight in the lives of some agile people.  #4
WTFlop 6M + HU  Beta Bundle
6 Books
 #5
Node Patterns
6 Books
 #6
Fifty Quick Ideas
3 Books
Get all three books for the price of two! Fifty Quick Ideas books are full of practical, realworld techniques that you can use to improve teamwork, build better products and build them in a better way.  #7
Growing Agile: Coach's Guide Series
4 Books
This bundle provides a collection of training and workshop plans for a variety of agile topics. The series is aimed at agile coaches, trainers and ScrumMasters who often find themselves needing to help teams understand agile concepts. Each book in the series provides the plans, slides, handouts and activity instructions to run a number of...  #8
Marionette.js A to Z
3 Books
Marionette.js has become a popular Backbonebased javascript library, because it helps you avoid boilerplate code and focus on what makes your app special. But how do you get started?Whether you want to finally get started with dynamic clientside programming (like one reader did), or are an experienced frontend dev who has inherited a...  #9
Complete Scala Bundle
3 Books
Scala is a generalpurpose programming language and it's getting extremely popular these days. Some say that learning Scala could be a challenging task. My experience, however, suggests that this is actually a myth that has very little to do with reality. With the right approach, learning Scala can be easy, fun and rewarding.The first book from...  #10
Build A Better Backbone App
3 Books
The best way to learn new development skills is through experience, but that takes time you don't have.Get the best of both worlds with this bundle: you'll learn how to produce modern web applications by learning from experienced developers like Derick Bailey and David Sulc. BackboneJS is one of the favorite tools on the web today, but it...