Sorry for being picky, but let's add more test cases for this critical piece of code.

 1. test the case where the L1 cache misses everything.
 2. test the case where holes are at the beginning or the end of the array.
 3. test holes that have more than one element.