Resource Library
Below you can find all of the different resources in the Guide: practice problems, former Google interview questions, online courses, videos, and more.
What is recursion?
Are you familiar with recursion? It's a powerful method used in computer science to efficiently solve problems. Learn more from this video which walks you through recursion using an example. (YouTube)
ESTIMATED TIME: UNDER 10 MINSLeetCode tutorial: Recursion (Java, C++)
Recursion can help you break down big problems into smaller, more manageable steps. Learn more about recursion, as well as how you can use it to solve a variety of problems, in this tutorial. (LeetCode)
Find greatest common divisor
This practice coding question asks you to find the greatest common divisor of two integers — without library functions! If you're not sure how to get started, hints are available. (InterviewBit)
Memoization and dynamic programming
If you're new to the concept of memoization or dynamic programming, check out this video to learn the basics while discussing examples of when it would be best to implement these concepts. (YouTube)
ESTIMATED TIME: 10-20 MINSDynamic programming
Dynamic programming is a powerful technique that allows you to solve problems quickly and efficiently. Learn about dynamic programming and how you can apply it to your code. (HackerEarth)
ESTIMATED TIME: 20-30 MINSClimbing stairs
Want to get practice with dynamic programming? Check out this question that asks you to determine the number of ways you can climb a set of stairs. Hint: Break up the problem into smaller steps! (LeetCode)