Nejrychlejší program řešící zadaný problém je ten, který nic nepočítá a rovnou vypíše správný výsledek. Zdá se vám to nemožné? Výsledky si můžeme spočítat dopředu a uložit si je do tabulky. Tabulku můžeme vložit buď přímo do zdrojového kódu programu (jako statické inicializované pole)1 nebo ji můžeme na začátku programu načíst ze souboru. Další možností je, že tabulku vygenerujeme po spuštění programu a oželíme krátké zdržení.

Nalezení výsledku v tabulce a jeho vypsání nám často zabere jen konstantní čas, případně čas úměrný velikosti odpovědi. Ovšem má to jednu mouchu. Zatím jsme tiše předpokládali, že výsledky půjdou poskládat do tabulky a že tabulka bude rozumně velká. To nemusí být u každé úlohy splněno. Ne každá úloha je pro předpočítání výsledků vhodná. Například řešení úlohy, která na vstupu dostane velký graf, se bude do tabulky ukládat špatně. Na druhou stranu úloha, která dostane číslo $n \in \{1,\dots, 1000\}$ a má spočítat $f(n)$ pro nějakou složitou funkci $f$, vhodná je. Předpočítané hodnoty $f(n)$ si hravě uložíme do pole velikosti $1000$.

Příklad: (Hašování do nafukovacího pole) — viz. nafukovací pole v kapitole [ref]subsection_amortiz_cas_sloz[/ref] o amortizované časová složitosti. Je spousta možností, jak zvolit hašovací funkci. Běžně se používá funkce, kterou počítáme $x$ modulo prvočíslo $p$. Při nafukování pole na velikost $2n$ bychom potřebovali znát největší prvočíslo menší nebo rovno $2n$. Jak takové prvočíslo rychle najít? Otázka je, proč ho vůbec během nafukování pole hledat. Můžeme si přeci dopředu pro každou velikost pole najít vhodné prvočíslo a uložit si ho do tabulky.