The best way to handle test failure is read the output in detail and see why. If it’s performance (not fast enough) then I usually found that I’d missed a point in the lectures that greatly sped things up. None of the solutions require careful hand optimization, they are well designed to require the right algorithm and data representation. Another problem you may run into is correctness. Some of the tests have tricky edge cases and you can try to see from the test output what that case is and simulate it yourself. You’re not crazy though, some of the exercises are hard and I asked for help in the forums when I got stuck .