A repository for all concepts I am learning. I am currently following Gayle Laakmann McDowell's Cracking The Coding Interview
. You can too!
Check out my website and blog for more.
-
Sorting (Cheat Sheet)
🏆I highly recommend sketching out the sorting process on paper for multiple examples
-
Recursion and Dynamic Programming(DP)
- A child is running up a staircase with n steps and can hop either 1 step, 2 steps, or 3 steps at a time. Implement a method to count how many possible ways the child can run up the stairs. (Solution)
- Imagine a robot sitting on the upper left corner of grid with r rows and c columns. The robot can only move in two directions, right and down, but certain cells are "off limits" such that the robot cannot step on them. Design an algorithm to find a path for the robot from the top left to the bottom right. (1's in the grid are "navigable" and 0's are not) (Solution)
- The classic Towers of Hanoi - you have 3 towers and N disks of different sizes which can slide onto any tower. The puzzle tarts with disks sorted in ascending order of size from top to bottom (i.e., each disk sits on top of an even larger one). You have the following constraints:
- Only one disk can be moved at a time.
- A disk is slid off the top of one tower onto another tower.
- A disk cannot be placed on top of a smaller disk. Write a program to move the disks from the first tower to the last using stacks. (Solution)
-
Graphs and Trees
- Inorder Traversal - Go Left, then the current node and then go Right
- Recursive - Trivial solution
- Iterative
- Inorder Traversal - Go Left, then the current node and then go Right