120+ continually updated, interactive, and test-driven coding challenges, with Anki flashcards.
Challenges focus on algorithms and data structures found in coding interviews.
Each challenge has one or more reference solutions that are:
- Fully functional
- Unit tested
- Easy-to-understand
Challenges will soon provide on-demand incremental hints to help you arrive at the optimal solution.
Notebooks also detail:
- Constraints
- Test cases
- Algorithms
- Big-O time and space complexities
Also included are unit tested reference implementations of various data structures and algorithms.
The provided Anki flashcard deck uses spaced repetition to help you retain key concepts.
Great for use while on-the-go.
Looking for resources to help you prep for the System Design and Object-Oriented Design interviews?
Check out the sister repo The System Design Primer, which contains additional Anki decks:
Each challenge has two notebooks, a challenge notebook with unit tests for you to solve and a solution notebook for reference.
- States the problem to solve.
- Describes any constraints or assumptions.
- Describes the general and edge test cases that will be evaluated in the unit test.
- [Challenge Notebook] Empty, refer to the solution notebook algorithm section if you need a hint.
- [Solution Notebook] One or more algorithm solution discussions, with Big-O time and space complexities.
- [Challenge Notebook] Provides on-demand incremental hints to help you arrive at the optimal solution. Coming soon!
- [Challenge Notebook] Skeleton code for you to implement.
- [Solution Notebook] One or more reference solutions.
- [Challenge Notebook] Unit test for your code. Expected to fail until you solve the challenge.

