Introduction
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
Chapter 1 – Arrays and String
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
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.
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
CoreData
MySQL and Wrappers for This
Realm
References
A: [Github repo with Swift Answer to Book Questions]