Topics

1

Time and space complexity (Big-O)

Estimate how running time grows with input size.

Free
2

Arrays and vectors

Use arrays/vectors and know cost of access, insert, delete.

Free
3

Two pointers

Solve pair and reverse problems with two moving indices.

Free
4

Sliding window

Reuse previous work for subarray/substring problems.

Full course
5

Kadane's algorithm (max subarray)

Find maximum subarray sum in O(n).

Full course
6

Binary search

Halve the search space each step on sorted data.

Free
7

Bubble, selection and insertion sort

Understand simple sorts and their O(n^2) cost.

Free
8

Merge sort

Divide, sort halves, and merge in O(n log n).

Full course
9

Quick sort

Partition around a pivot and recurse.

Full course
10

Hashing and hash maps

Use unordered_map/set for O(1) lookup and counting.

Full course
11

String problems

Solve palindrome, anagram and frequency problems.

Full course
12

Recursion and the call stack

Think recursively and trace the stack.

Full course
13

Backtracking

Explore choices and undo them (subsets, permutations, N-Queens).

Full course
14

Linked lists

Create, insert, delete and traverse singly linked lists.

Full course
15

Linked list problems: reverse, middle, cycle

Use pointer tricks: reverse in place, slow/fast pointers.

Full course
16

Stacks

Use LIFO for undo, parentheses and expression evaluation.

Full course
17

Queues and deques

Use FIFO queues and double-ended queues.

Full course
18

Monotonic stack: next greater element

Solve 'next greater/smaller' problems in O(n).

Full course
19

Binary trees and traversals

Build trees and do inorder, preorder, postorder, level order.

Full course
20

Binary search trees

Insert, search and delete in a BST.

Full course
21

Heaps and priority queues

Always get the min/max quickly; top-k problems.

Full course
22

Graphs and BFS

Represent graphs and explore level by level.

Full course
23

DFS, connected components and cycles

Explore deep first; count islands; detect cycles.

Full course
24

Shortest paths: Dijkstra

Find cheapest paths with weights.

Full course
25

Dynamic programming

Store answers to subproblems: memoization and tabulation.

Full course