ITA's old “Hiring Puzzles” is still a treasure trove of good problems
Most comments here are misunderstanding
these puzzles as some awful alternative to leetcode, but as someone who remembers puzzling over these on the T, still learning to code, it was a very different world when ITA was using these.These appeared during the post-dotcom bust pre-startup boom period of 2004-2008. If you look at CS enrollment rates of the time you’ll see they were at record lows. Software paid well, but not that well and most engineering jobs were really bad ones resembling Dilbert comics. The culture of treating engineers well, giving them good tools, snacks, unlimited pto didn’t happen until later.At the time people solving hard problems and keeping up with changes in programming languages and tech were doing it because they loved it. Nearly everyone doing tech was doing it because they where obsessed and passionate about it. This is because if you weren’t there where much more pleasant ways to make about the same money.These ITA puzzles were a way of signaling “hey! we’re a company of people that love to code and work on hard puzzles too! If you’re the type of person that sees puzzles like this and can’t get it out of your head for the rest of the day, you should check us out!”These puzzles were not a leetcode like gates (in fact they very explicitly were NOT required for applicants), but rather a way of advertising 
to programmers that ITA was not just another boring big corp that would suck your passion for coding away.