The reason to keep several rows instead of one is robustness. A collision inflates a rare item's count in one row, but a different row stays clean, and the minimum ignores the inflated one. Today you construct exactly that rescue.
Show that the row minimum recovers a true count even when one row is inflated by a collision.
This is the payoff for paying for several rows. "cherry" appears once, but in row 2 it shares a column with "the", which appeared five times, so that counter reads 6 - if you trusted any single row you might report "cherry"’s frequency as six. The other two rows, where "cherry" sits alone, still read 1.
Taking the minimum is what makes this safe. A collision can only push a counter up, never down, so at least one of the clean rows survives untouched, and the min homes in on it. More rows means more independent chances that some row avoids every heavy hitter, which is why increasing the depth d drives the probability of a large over-estimate down. The next lesson turns that intuition into the exact sizing math.
// add "the" 5x and "cherry" 1x, then read cherry's per-row counters:// row 0 col 0 = 1, row 1 col 5 = 1, row 2 col 2 = 1 + 5 = 6// Estimate = min(1, 1, 6) = 1