This list has 150 coding problems in 18 groups. Each group teaches one pattern, from hash maps to bit operations. It has the same problems as the NeetCode 150 list, but one premium problem has a free problem in its place.
Use this list when you have six weeks or more. Do the groups in order, because later groups use earlier patterns.
150 problems · 18 groups · 28 easy, 101 medium, 21 hard
Your progress stays in this browser. Mark a problem as done when you can solve it without help.
A hash map gives fast lookups by key. Use it to count items, find pairs and group values in one pass.
Two indexes move through the data from different positions. This pattern often replaces a nested loop on sorted data.
A window is a range of consecutive items. Move its two ends to keep a condition true, and update the answer as the window moves.
A stack gives back the last item that you added. Use it for nested structures and to find the next larger or smaller value.
Binary search removes half of the search range at each step. It works on sorted data and on answers that change from false to true one time.
A linked list keeps each value in a node that points to the next node. Most problems need careful pointer changes or a fast and a slow pointer.
A binary tree node has at most two children. Recursion and level-order traversal solve most tree problems.
A trie stores words one character at a time. Words with the same prefix share the same path of nodes.
A heap always gives you the smallest or the largest item quickly. Use it for the top k items and for streams of data.
Backtracking builds a solution one choice at a time. When a choice cannot work, the search goes back and tries the next choice.
A graph is a set of nodes and the edges between them. Depth-first search, breadth-first search and union-find solve most graph problems.
Medium
Medium
Medium
Medium
Medium
Medium
Medium
Medium
Medium
Medium
Hard
These problems use weighted edges and order rules. They need Dijkstra's algorithm, a minimum spanning tree or a topological sort.
Dynamic programming stores the answers to smaller problems and builds on them. In this group, one index describes each smaller problem.
In this group, two values describe each smaller problem, such as two positions in two strings. A table usually holds the answers.
A greedy algorithm makes the best local choice at each step. The hard part is to show that the local choice is safe.
An interval has a start and an end. Sort the intervals first, and then merge them, count them or find the overlaps.
These problems test matrix operations and number rules. Careful index work is more important than a special data structure.
Bit operations work on the binary form of a number. XOR, shifts and masks solve these problems with very little memory.
© 2026 SysRound. SysRound is an AI practice tool. The AI interviewer and the AI feedback can be wrong. Use it for your own practice, not to hire people.