The Practice Problem Compendium
Tired of Googling around for programming interview practice problems? This is a project to build high-quality practice problems suggested for preparing for programming interviews.
Suggested Practice Questions
- Array Rotation: take a given array and rotate it
nslots (10-20 minutes)
- Coin Change: how many different ways can you make change given an amount and list of coins?
- Tree Zig Zag: alternate between the left-most and right-most nodes in a BST.
How should you approach these problems?
- Code in a realistic fashion. If you're doing a whiteboard interview, practice with a whiteboard. If you don't have a whiteboard, writing your solution on paper can be a good substitute. Phone interview? Try using the online code pad they will have you use.
- Always compile your code after writing it. You'll often find bugs in your solution. Think—how might you catch this problem in the future?
What makes a good practice problem?
- Representative of many problems
- Has shown up (or could reasonably show up) in real interviews
- Takes less than an hour
- Not language-specific
- Two kinds of problems: more involved complex ones (company challenges)—good for overall practice more specific targeted problems—better for checking understanding
- Not breaking any confidentiality agreements
Interested in getting even more involved? Feel free to submit problems and solutions as pull requests. Email email@example.com to get more involved with the group and join our planning Trello board.