De ce contează?
Când gătești o singură omletă, te duci la frigider, scoți două ouă și gata — nu are rost să cureți tot frigiderul mai întâi. Dar când gătești pentru o nuntă de 300 de invitați, prima dată tai și pregătești toate ingredientele, le pui în boluri, și abia apoi gătești la rând fără să mai alergi după nimic. Pregătirea din față te-ar încetini la o omletă, dar te salvează la 300 de porții. Exact așa decizi și în algoritmică dacă să precalculezi.
Ideea-cheie
Precalcularea înseamnă să faci o singură dată o muncă pe un interval fix, să salvezi rezultatele într-o tabelă, iar apoi să răspunzi la fiecare întrebare instantaneu, doar citind din tabelă.
Reflexul corect nu este „precalculez mereu" și nici „calculez mereu direct". Reflexul este o singură întrebare pe care ți-o pui înainte de orice: de câte ori voi răspunde la aceeași întrebare?
Dacă răspunzi o singură dată, calculezi direct și gata — e mai simplu și nu pierzi timp cu pregătirea. Dacă răspunzi de foarte multe ori, pe un interval care se tot repetă, atunci pregătești tabela o dată și apoi doar te uiți în ea.
Precalcularea nu inventează informație nouă — mută munca în timp. Plătești un cost mare la început, o singură dată, ca să plătești aproape nimic la fiecare dintre miile de întrebări care urmează. Are sens doar când acel „o singură dată" se împarte la foarte multe întrebări.