# How to LeetCode — LeetCode Study Plan

Stop the grind. Study with plan! Here’s the patterns that covers 95% of the questions you’ll see on LeetCode.

**Binary Search**

**Overview**

Sorted Array

Implicitly Sorted Array

**Depth First Search**

Introduction

DFS on Tree

- Introduction
- Max Depth of A Tree
- Visible Tree Node
- Valid Binary Search Tree
- Serializing and Deserializing Binary Tree
- Lowest Common Ancestor

**Backtracking**

Combinatorial Search

Memoization

Pruning

Dedup

Additional Practices

**Breadth First Search**

Introduction

BFS on Tree

- Binary Tree Level Order Traversal
- Binary Tree ZigZag Level Order Traversal
- Binary Tree Right Side View
- Binary Tree Min Depth
- Binary Tree Distance K

**Graph**

Introduction

BFS on trees

Matrix as Graph

Directed Graph / Topological Sort

- Topological Sort Introduction
- Task Scheduling
- Sequence Reconstruction
- Alien Dictionary
- Task Scheduling 2
- Course Schedule

**Two Pointers**

Introduction

Same Direction

Opposite Direction

Sliding Window

- Longest Substring without Repeating Characters
- Find All Anagrams in a String
- Get the Maximum Score
- Minimum Window Substring

Prefix Sum

Cycle Finding

**Priority Queue / Heap**

Introduction

Top K

- K Closest points
- Merge K Sorted Lists
- Kth Largest Element in an Array
- Kth Smallest Element in a Sorted Matrix

Moving Best

Multiple Heaps

**Dynamic Programming**

Introduction

Sequence

Grid

Dynamic number of subproblems

Partition

Interval

Two Sequences

Game Theory

0–1 Knapsack

Bitmask

# Disjoint Set Union | Union Find

- DSU/Union Find Fundamentals
- DSU Introductory Problem
- Size of Connect Components
- Umbristan | Reverse Union Find
- Merge User Accounts

# Monotonic Stack

**Monotonic Stack/Queue Intro**- Sliding Window Maximum
- Daily Temperatures
- Next Greater Element II
- Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit