Hard data structure and algorithm practice puzzle.
Given a forwarding table where next[i] is the router that i sends packets to, or -1 if i delivers them itself, return true if any packet could go around in circles forever. Follow the links from each router you haven't checked, marking routers on the current walk. Hitting a router that's still on this walk means a loop. Hitting one already finished doesn't.
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