Categorize Google Interview Questions

Data Representation

Bit

RLE

Rolling Hash

Height Array

Data Structure Implementation

Tree

Data Structures Design

Container

Iterator

Intervals

File System

OOD?

Data Structures Usage Pattern

Stack

Monotonic Deque

some property of the problem is telling us, we can ignore smaller / larger stuff from the past.

Priority Queue

Priority ~= greedy, some property of the problem is telling us, some partial result is better than others.

Tree Traversal

Path / Subtree / Nodes in Tree

Depth / Height / width / Size in Tree

Geometry

Bit Manipulation

Numbers

Tabluation

Cycle

Numerical Pattern

Sequence Pattern

Prefix Sum

2D Matrix Pattern

BFS

DFS

Cycle Detection

Greedy

String

KMP

HashMap

Sliding Window

Two Pointers

On Array

On Linked List

On String

Circular Array / Linked List

Backtrack

DP

From previous result through a simple relationship

From previous result through a branching choice and / or bit mask as state or table rows / cols / or condition

Expansion to k between i and j

Game

2D

range(n) -> reversed(range(n)) or range(n) -> range(i, n) etc

Depends on preivous row / column

Set

State Machine

Sorting

Quickselect

Merge Sort

Use of a SortedList

Sweep Line

Topological Sort

Math

RNG

Counting

On Frequencies

Combinations

Pairwise

2D grid

Union Find

Trie

Concurrency

Heuristic

Simple?