Medium data structure and algorithm practice puzzle.
Given a list of byte addresses a program reads in order, the cache's block size in bytes and its number of lines, return how many reads hit in a direct-mapped cache that starts empty. Each address belongs to a block, each block can live in exactly one line, and a line remembers which block it holds by its tag. Reading neighboring bytes hits because the whole block arrived together, and two blocks that map to the same line evict each other every time, which is a conflict miss.
Solve it three ways: snap the jigsaw pieces together, fill in the blanks, or type it from scratch against the tests. This one is free.
Every line of the solution comes with a note explaining why it is there, and a step by step replay shows the code running. At level 3, where you type it yourself, you can ask for an AI mock interview on this problem that ends with a hiring manager's scorecard.
Browse all 546 puzzles