This guide is designed to help you quickly learn the most commonly asked problems in algorithm interview

An algorithm is a step by step procedure to solve a problem


  • Your local computer should have installed JDK 8+ or OpenJDK 8+, and Maven 3+

  • You should have walked through the Data Structure Bootcamp

Array and String

Two Pointers

Use two pointers to walk inward from both ends of a linear collection, such as array or string, to reduce the time complexity of the solution

Sliding Window

Use a sliding window to check a condition while iterating over an array or string
A window is a range of element indices in an array or string. A sliding window is a window that slides its boundaries toward a direction (left/right)

Dynamic Programming

Learn to break a problem into optimal subproblems and use a cache to store the computed results of the solutions to overlapping subproblems


Divide and Conquer