Math

Dynamic programming

Two pointers

Sortings

Greedy

Brute force

Implementation

Divide and conquer

Stack

Array

Tree

Ad hoc

Meet in the middle

Coordinate compression

Geometry

String

Graph

Dijkstra

Bitmask

Postorder traversal

Recursion

Inorder traversal