A data structure and algorithm practice site. Learn the algorithms and drill the patterns coding interviews actually ask about: two pointers, binary search, trees, heaps, graphs, dynamic programming, backtracking and more, across 506 practice problems. Every puzzle can be solved in Python or in JavaScript, and every solution comes with a step by step replay of how it runs.
Every problem can be solved three ways: assembled from pieces, filled in from a skeleton, or typed from scratch against its tests, so the same problem works whether you are learning the pattern or rehearsing it under interview conditions. Three are free with no account.
This site needs JavaScript to run the puzzles, because your code is executed in your own browser. Some places to start: