🎒
Technical Interview Study Guide
  • 🍕Welcome!
  • 🍥Getting Started
    • Study Plan
    • Optimizing Revision
    • Summer 2024 Timeline
    • FAQs
  • 🥨Algorithms
    • Binary Search
    • Sorting
    • Recursion
    • Graph
    • Quick Select
    • Intervals
    • Binary
    • Geometry
    • Dynamic Programming
  • 🥞Data Structures
    • Arrays
      • Matrices
    • Strings
    • Linked Lists
      • Doubly Linked Lists
    • Hash Tables
    • Graphs
      • Trees
        • Binary Search Trees
        • Heaps
        • Tries
        • Segment Trees
    • Stacks
    • Queues
      • Double Ended Queues
    • Union-Find Disjoint Set (UFDS)
  • 🍡Problems Guide
    • Dynamic Programming Roadmap
      • Warmup
        • Climbing Stairs
        • Nth Tribonacci Number
        • Perfect Squares
      • Linear Sequence
        • Min Cost to Climb Stairs
        • Minimum Time to Make Rope Colorful
        • House Robber
        • Decode Ways
        • Minimum Cost for Tickets
        • Solving Questions with Brainpower
  • 🍣Other Technical Topics
    • General Problem Solving
    • Runtime Predictions
    • System Design
      • SQL
      • Accessing APIs
    • Operating Systems
  • 🍿Non-technical Topics
    • Behavioral Interviews
    • Resumes
Powered by GitBook
On this page
  • Preface
  • How to use?
  • Notation
  • Duplicate questions
  • Week 1
  • Week 2
  • Week 3
  • Week 4
  • Week 5 onwards
  • Dynamic programming roadmap
  1. Getting Started

Study Plan

PreviousWelcome!NextOptimizing Revision

Last updated 1 year ago

These questions were compiled from the across its various topics. The order of studying and study plan is also inspired by the .

Preface

It took me about a month to complete the study plan (not including the dynamic programming roadmap). It's important to preface that I had completed a data structures & algorithms (DSA) course right before starting my revision so a lot of the fundamentals was fresh in my head. You may find yourself spending more/less time than I did and that is alright.

Check out my dedicated blog post for the key aspects of preparing for technical interviews:

If you are not familiar with fundamental DSA, it is recommended that you read a book on DSA before diving into LeetCode as it will help you better understand how to apply the data structures/algorithms to the problems. You can find my recommendations in the FAQs.

How to use?

Feel free to refer to the associated sections about each topic (in the left sidebar) to learn the techniques and patterns commonly associated to questions in that topic.

While it is good if you are "discover" these patterns yourself, having them formally introduced can help you to structure your thinking going into each problem.

Notation

  • : requires LeetCode premium

  • : problems that I found incredibly tricky and often tapped out

Duplicate questions

My recommended approach for duplicate questions is to try the question again but using the associated topic to solve it, rather than glossing over them again.

Week 1

Array
String
Hash Table
Recursion

Week 2

Sorting and Searching
Matrix
Linked List
Queue
Stack

Week 3

Tree
Graph
Heap
Trie

Week 4

Interval
Dynamic Programming

For more questions on Dynamic Programming, refer to the Dynamic programming roadmap after you are done with this initial study plan

Binary
Math
Geometry

Week 5 onwards

Once you have completed the study plan, feel free to use other question banks like Grind75 and Neetcode to continue improving your familiarity and speed.

You will notice that many of the questions from this study plan overlaps with these question banks. I recommend leaving them to the end and redoing them when you've completed the other questions.

You may also want to try improving your dynamic programming skills with the dynamic programming roadmap below.

Dynamic programming roadmap

Warmup
Linear Sequences

These are problems that require solving sub-problems based on the prefix of the array with a constant transition

Grids

These are problems where the dynamic programming array is the same dimensions as the grid

Two Sequences
Intervals

These problems often require solving for every interval of the array

Linear Sequence Transitions
Knapsack-like
Topological Sort/Graphs

These problems often require solving on all sub-graphs connected to each node

Trees

These problems often require solving on all subtrees

Interesting Problems

Other interesting problems that I have done so far

Sliding Window Maximum

Find All Anagrams in a String

Group Anagrams

Longest Palindromic Substring

Encode and Decode Strings

Insert Delete GetRandom O(1)

First Missing Positive

LRU Cache

All O`one Data Structure

Generate Parentheses

Sudoku Solver

Strobogrammatic Number 2

Kth Smallest Element in a Sorted Matrix

Median of Two Sorted Arrays

Spiral Matrix

Valid Sudoku

Design Hit Counter

Basic Calculator

Basic Calculator 2

Trapping Rain Water

Largest Rectangle in Histogram

Binary Tree Maximum Path Sum

Subset of Another Tree

Construct Binary Tree from Preorder and Inorder Traversal

Serialize and Deserialize Binary Tree

Validate Binary Search Tree

Minimum Knight Moves

Pacific Atlantic Water Flow

Number of Connected Components in an Undirected Graph

Graph Valid Tree

Alien Dictionary

Find Median from Data Stream

Word Break

Word Search 2

Meeting Rooms

Meeting Rooms 2

These questions were collated from

I have written up a problems guide for this roadmap as I personally think that developing the intuition for dynamic programming is not easy and I would like to help bridge the gap. The problems guide can be found

Minimum Time to Make Rope Colorful

Minimum Cost for Tickets

Unique Paths 2

Count Square Submatrices with All Ones

Dungeon Game

These problems often require O(MN)O(MN)O(MN), where dp[i][j]dp[i][j]dp[i][j] solves for arr1[:i]arr1[:i]arr1[:i] and arr2[:j]arr2[:j]arr2[:j]

Strong Game 7

These problems are often solved on every prefix of the array, transition from every j<ij < ij<i

House Robbers 3

String Compression 2

Minimum Difficulty of a Job Schedule

🍥
🚩
🚩
🚩
🚩
⭐
🚩
🚩
🚩
🚩
🚩
🚩
⭐
🚩
🚩
🚩
🚩
⭐
🚩
🚩
🚩
🚩
🚩
🚩
🚩
🚩
🚩
⭐
🚩
⭐
⭐
⭐
🚩
🚩
🚩
⭐
⭐
🚩
🚩
🚩
🚩
🚩
🚩
🚩
🚩
🚩
⭐
🚩
Tech Interview Handbook
Tech Interview Handbook
https://blog.woojiahao.com/post/technical-interview-systems/
this Reddit post
here.