This resource is designed to help you systematically prepare for technical interviews by providing in-depth explanations and walkthroughs for various problems.

  1. As you work through each section, focus on understanding the key concepts in Data Structures and Algorithms
  2. Dive into the problem walkthroughs that illustrate how to approach and solve each type of challenge.
  3. Utilize the practice problems and additional resources to test your understanding and reinforce your skills, ensuring you can apply what you have learned in a real interview setting.
  4. Regularly review and practice with this guide as a roadmap to build confidence and proficiency in your problem-solving abilities.

📌  Before starting to use this resource, it is important that you’ve completed TIP101 or have a strong grasp on programming fundamentals (e.g. data types, syntax, conditionals, loops)

How to use this resource

If you already have a strong grasp of programming fundamentals, we recommend following this guide in the suggested order. Each section begins with a concise overview of a data structure or algorithm, followed by detailed LeetCode problem walkthroughs, covering time and space complexities and solution trade-offs. You'll then apply these concepts through additional LeetCode problems, mainly at the easy or medium level, though you can explore more on the platform for extra practice. Most interview questions are medium difficulty, so that’s where you should focus—but feel free to tackle harder questions if you’re up for it. Good luck!

Big O Notation

Arrays

String

Linked List

Recursion

HashMap

Matrix

Searching and Sorting