DSA interview questions
The Blind 75, grouped into 17 patterns in the order to learn them. Solve every one right here in JavaScript, with tests that run in your browser.
0 of 75 solved
All 75 run here, in JavaScript
- 10/7
Arrays and hashing
Trade memory for speed: remember what you have seen in a Map or a Set.
- 20/3
Two pointers
Move two indexes toward each other, or one behind the other, in one pass.
- 30/4
Sliding window
Grow a window on the right, shrink it on the left, and never step back.
- 40/1
Stack
The most recent unfinished thing is the first one to close.
- 50/2
Binary search
Throw away half of what is left with every comparison.
- 60/6
Linked lists
Re-point next pointers; a slow and a fast pointer find middles and cycles.
- 70/11
Trees
Solve it for one node and trust the recursion with its children.
- Invert Binary TreeEasy
- Maximum Depth of Binary TreeEasy
- Same TreeEasy
- Subtree of Another TreeEasy
- Lowest Common Ancestor of a Binary Search TreeMedium
- Binary Tree Level Order TraversalMedium
- Validate Binary Search TreeMedium
- Kth Smallest Element in a BSTMedium
- Construct Binary Tree from Preorder and Inorder TraversalMedium
- Binary Tree Maximum Path SumHard
- Serialize and Deserialize Binary TreeHard
- 80/3
Tries
A tree of letters, so words that share a beginning share a path.
- 90/2
Heaps
Keep the few smallest or largest items on top, at log cost per change.
- 100/2
Backtracking
Make a choice, explore it, undo it, and try the next one.
- 110/7
Graphs
Visit every node once with BFS or DFS; order dependencies topologically.
- 120/10
1-D dynamic programming
Each answer is built from the answers just before it.
- 130/2
2-D dynamic programming
A grid of smaller answers, filled in one row at a time.
- 140/2
Greedy
Take the best step now, once you can show it never costs you later.
- 150/5
Intervals
Sort by start, then merge or count overlaps in one pass.
- 160/3
Matrix
Walk a grid by rows, by layers or in place.
- 170/5
Bit manipulation
Work on the binary digits directly with &, |, ^ and shifts.
More practice
The site’s other problems, from contest and practice sites. They open on the site that hosts them.
LeetCode26
- Longest Common PrefixEasyLeetCode(opens on LeetCode)
- Majority ElementEasyLeetCode(opens on LeetCode)
- Merge Sorted ArrayEasyLeetCode(opens on LeetCode)
- Palindrome NumberEasyLeetCode(opens on LeetCode)
- Reverse IntegerEasyLeetCode(opens on LeetCode)
- Search Insert PositionEasyLeetCode(opens on LeetCode)
- Sqrt(x)EasyLeetCode(opens on LeetCode)
- Add and Search Word - Data structure designMediumLeetCode(opens on LeetCode)
- Course Schedule IIMediumLeetCode(opens on LeetCode)
- Find First and Last Position of Element in Sorted ArrayMediumLeetCode(opens on LeetCode)
- Find Peak ElementMediumLeetCode(opens on LeetCode)
- Gas StationMediumLeetCode(opens on LeetCode)
- Jump Game IIMediumLeetCode(opens on LeetCode)
- Longest Palindromic SubsequenceMediumLeetCode(opens on LeetCode)
- Majority Element IIMediumLeetCode(opens on LeetCode)
- Pow(x, n)MediumLeetCode(opens on LeetCode)
- Rotate ArrayMediumLeetCode(opens on LeetCode)
- Search a 2D MatrixMediumLeetCode(opens on LeetCode)
- Spiral Matrix IIMediumLeetCode(opens on LeetCode)
- TriangleMediumLeetCode(opens on LeetCode)
- Valid SudokuMediumLeetCode(opens on LeetCode)
- CandyHardLeetCode(opens on LeetCode)
- Edit DistanceHardLeetCode(opens on LeetCode)
- First Missing PositiveHardLeetCode(opens on LeetCode)
- Longest Increasing Path in a MatrixHardLeetCode(opens on LeetCode)
- Trapping Rain WaterHardLeetCode(opens on LeetCode)
Codeforces12
- Beautiful MatrixEasyCodeforces(opens on Codeforces)
- Beautiful YearEasyCodeforces(opens on Codeforces)
- Did We Get Everything CoveredEasyCodeforces(opens on Codeforces)
- Next RoundEasyCodeforces(opens on Codeforces)
- Petya and StringsEasyCodeforces(opens on Codeforces)
- Phoenix and PuzzleEasyCodeforces(opens on Codeforces)
- TeamEasyCodeforces(opens on Codeforces)
- Theatre SquareEasyCodeforces(opens on Codeforces)
- WatermelonEasyCodeforces(opens on Codeforces)
- Way Too Long WordsEasyCodeforces(opens on Codeforces)
- Paint the ArrayMediumCodeforces(opens on Codeforces)
- Make PalindromeHardCodeforces(opens on Codeforces)
HackerRank9
- Apple and OrangeEasyHackerRank(opens on HackerRank)
- Birthday Cake CandlesEasyHackerRank(opens on HackerRank)
- Breaking the RecordsEasyHackerRank(opens on HackerRank)
- Diagonal DifferenceEasyHackerRank(opens on HackerRank)
- Grading StudentsEasyHackerRank(opens on HackerRank)
- KangarooEasyHackerRank(opens on HackerRank)
- Plus MinusEasyHackerRank(opens on HackerRank)
- Sock MerchantEasyHackerRank(opens on HackerRank)
- Time ConversionEasyHackerRank(opens on HackerRank)
