This is an index of articles on my site indexed by chapters in the book Cracking the Coding Interview – (6th edition) by Gayle Laakmann Mcdowell; The book’s intended purpose is to prepare prospective candidates for coding interviews (particularly with some of the big-name companies like Google). So here I’ve indexed the topic on my site by chapters in the book. However, sometimes the relationships would be tangential, so reading the book is the best.

Part VI – Big-O

Big-O Notation (Part I)

Big-O Notation (Part II)

Chapter 1 – Arrays and String

Arrays and Strings

Chapter 2 – Linked Lists

Describe Linked Lists && Implementing Linked Lists

Recursive Problems

Chapter 3 – Stacks & Queues

Stacks & Queues (Data Structures)

Stacks & Queues Interview Questions

1/ Use a single array to implement three stacks

2/ Stack Min – Design a stack that has an extra function returning a min element (where push, pop, and min all operate with O(1) time complexity).

3/ Stack of Plates

4/ Queue via Stacks

5/ Sort Stack

6/ Animal Shelter

Chapter 4 – Trees & Graphs

Graphs are an important data structure in computer science, and trees and a subset of graphs.

Graphs & Graph Search Algorithms

Trees (BSTs & RBTs)

Chapter 5 – Bit Manipulation

The fifth chapter of the book covers some elements of the type of thing we pick up in the early stages of a Computer Science degree program, but then possibly don’t think about much after that.

Bit Manipulation

Chapter 6 – Math and Logic Puzzles


Chapter 7 – Object-Oriented Design

Solving O.O. Themed Interview Questions

Factory Pattern && Singleton Pattern

Chapter 8 – Recursion and Dynamic Programming

Recursion means the repeated application of a recursive procedure, typically where a function calls itself directly or indirectly, and it’s used to solve problems like the Towers of Hanoi where a recursive solution makes sense. Dynamic Programming is a method for solving complex problems by breaking them down into a collection of simpler subproblems, solving each of those subproblems just once, and storing the solutions.  Dynamic Programming is basically a combination of recursion and memoization.

Fibonacci, the Golden Ratio & Memoization

Chapter 9 – System Design and Scalability

Chapter 10 – Sorting and Searching

Chapter 11 – Testing

An Outline of Testing. Covering Unit Tests, Automated Testing etc.

Chapter 12 – C and C++

General Language Backstory: Programming Language Origin Stories

This chapter in the book looks at things like inheritance and polymorphism in C++

Chapter 13 – Java

General Language Backstory: Programming Language Origin Stories

Chapter 14 – Databases

Fundamentals of Databases

Looking at SQL, how we use DataBases in an OS context.

SQL Basics

Databases in iOS


MySQL and Wrappers for This



A: [Github repo with Swift Answer to Book Questions]


Last modified: October 20, 2019