# The Ultimate Guide to Dynamic Programming

Scared of dynamic programming? It’s because you don’t have a system. Let me show you my step by step system to solve any dynamic programming problem.

Scared of dynamic programming? It’s because you don’t have a system. Let me show you my step by step system to solve any dynamic programming problem.

50% of Google’s interview questions require recursion. So isn’t it about time you figured it out once and for all? Learn the 6 core recursive patterns now!

Coding Interview Question: Implement a binary tree with a method getRandomNode() that returns a random node. Click for the solution.

Coding Interview Question: Given two nodes in a binary tree, write a function to find the lowest common ancestor. Click for the solution.

Coding Interview Question: Given two integers, write a function to sum the numbers without using any arithmetic operators. Click for the solution.

Coding Interview Question: Given a stack, reverse the items without creating any additional data structures. Click for the solution.

Coding Interview Question: Given a tree, convert it into a doubly linked list from left to right by modifying the existing pointers. Click for the solution.

Coding Interview Question: Given a tree, find the length of the longest branch of nodes in increasing consecutive order. Click for the solution.

Coding Interview Question: Given a linked list, write a function that prints the nodes of the list in reverse order. Click for the solution.

Coding Interview Question: Given a binary tree, write a function to determine whether the tree is balanced. Click for the solution.