Hard data structure and algorithm practice puzzle.
Objects hold references to each other as an adjacency list, and roots are the references held by the running program. Under reference counting an object is freed the moment nothing refers to it, and freeing it drops the counts of everything it referred to, which can free those too. Return how many objects are still allocated when that cascade stops. Objects that only refer to each other in a cycle keep each other's counts above zero forever, which is the memory leak reference counting cannot see.
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