</>CodexBash
Learn path · free to read

One idea at a time, then the problems that use it

A path from counting digits to graphs, numbered so you always know where you are. Each lesson explains a single technique, shows it running step by step, and hands you the problems where it is the right answer. C, C++, Java and Python are only ways of talking to a computer. The thinking is what carries across.

36 lessons, in order. Start at one, or start where you are stuck.

Heaps

step 28
  1. Two heaps: keeping the middle in view

    Advanced16 min read

    A heap gives you the extreme of a set in constant time. Point two of them at each other and the extreme becomes the median.

    0 of 3 practice problems solved

Backtracking

step 33
  1. Tries and backtracking: searching many words at once

    Advanced18 min read

    Searching a grid for one word is backtracking. Searching for a thousand is backtracking with the dictionary turned inside out.

    0 of 3 practice problems solved

Dynamic programming

step 34
  1. Dynamic programming without the mystique

    Advanced20 min read

    A state, a recurrence, and an order to fill it in. Longest increasing subsequence, first the honest way and then the fast one.

    0 of 6 practice problems solved