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

  1. 1

    Arrays and hashing

    Trade memory for speed: remember what you have seen in a Map or a Set.

    0/7
    1. Contains DuplicateEasy
    2. Valid AnagramEasy
    3. Two SumEasy
    4. Group AnagramsMedium
    5. Product of Array Except SelfMedium
    6. Encode and Decode StringsMedium
    7. Longest Consecutive SequenceMedium
  2. 2

    Two pointers

    Move two indexes toward each other, or one behind the other, in one pass.

    0/3
    1. Valid PalindromeEasy
    2. 3SumMedium
    3. Container With Most WaterMedium
  3. 3

    Sliding window

    Grow a window on the right, shrink it on the left, and never step back.

    0/4
    1. Best Time to Buy and Sell StockEasy
    2. Longest Substring Without Repeating CharactersMedium
    3. Longest Repeating Character ReplacementMedium
    4. Minimum Window SubstringHard
  4. 4

    Stack

    The most recent unfinished thing is the first one to close.

    0/1
    1. Valid ParenthesesEasy
  5. 6

    Linked lists

    Re-point next pointers; a slow and a fast pointer find middles and cycles.

    0/6
    1. Reverse Linked ListEasy
    2. Merge Two Sorted ListsEasy
    3. Linked List CycleEasy
    4. Reorder ListMedium
    5. Remove Nth Node From End of ListMedium
    6. Merge k Sorted ListsHard
  6. 7

    Trees

    Solve it for one node and trust the recursion with its children.

    0/11
    1. Invert Binary TreeEasy
    2. Maximum Depth of Binary TreeEasy
    3. Same TreeEasy
    4. Subtree of Another TreeEasy
    5. Lowest Common Ancestor of a Binary Search TreeMedium
    6. Binary Tree Level Order TraversalMedium
    7. Validate Binary Search TreeMedium
    8. Kth Smallest Element in a BSTMedium
    9. Construct Binary Tree from Preorder and Inorder TraversalMedium
    10. Binary Tree Maximum Path SumHard
    11. Serialize and Deserialize Binary TreeHard
  7. 8

    Tries

    A tree of letters, so words that share a beginning share a path.

    0/3
    1. Implement Trie (Prefix Tree)Medium
    2. Design Add and Search Words Data StructureMedium
    3. Word Search IIHard
  8. 9

    Heaps

    Keep the few smallest or largest items on top, at log cost per change.

    0/2
    1. Top K Frequent ElementsMedium
    2. Find Median from Data StreamHard
  9. 10

    Backtracking

    Make a choice, explore it, undo it, and try the next one.

    0/2
    1. Combination SumMedium
    2. Word SearchMedium
  10. 11

    Graphs

    Visit every node once with BFS or DFS; order dependencies topologically.

    0/7
    1. Number of IslandsMedium
    2. Clone GraphMedium
    3. Pacific Atlantic Water FlowMedium
    4. Course ScheduleMedium
    5. Graph Valid TreeMedium
    6. Number of Connected Components in an Undirected GraphMedium
    7. Alien DictionaryHard
  11. 12

    1-D dynamic programming

    Each answer is built from the answers just before it.

    0/10
    1. Climbing StairsEasy
    2. House RobberMedium
    3. House Robber IIMedium
    4. Longest Palindromic SubstringMedium
    5. Palindromic SubstringsMedium
    6. Decode WaysMedium
    7. Coin ChangeMedium
    8. Maximum Product SubarrayMedium
    9. Word BreakMedium
    10. Longest Increasing SubsequenceMedium
  12. 13

    2-D dynamic programming

    A grid of smaller answers, filled in one row at a time.

    0/2
    1. Unique PathsMedium
    2. Longest Common SubsequenceMedium
  13. 14

    Greedy

    Take the best step now, once you can show it never costs you later.

    0/2
    1. Maximum SubarrayMedium
    2. Jump GameMedium
  14. 15

    Intervals

    Sort by start, then merge or count overlaps in one pass.

    0/5
    1. Meeting RoomsEasy
    2. Insert IntervalMedium
    3. Merge IntervalsMedium
    4. Non-overlapping IntervalsMedium
    5. Meeting Rooms IIMedium
  15. 16

    Matrix

    Walk a grid by rows, by layers or in place.

    0/3
    1. Set Matrix ZeroesMedium
    2. Spiral MatrixMedium
    3. Rotate ImageMedium
  16. 17

    Bit manipulation

    Work on the binary digits directly with &, |, ^ and shifts.

    0/5
    1. Number of 1 BitsEasy
    2. Counting BitsEasy
    3. Reverse BitsEasy
    4. Missing NumberEasy
    5. Sum of Two IntegersMedium

More practice

The site’s other problems, from contest and practice sites. They open on the site that hosts them.

LeetCode26

  1. Longest Common PrefixEasyLeetCode(opens on LeetCode)
  2. Majority ElementEasyLeetCode(opens on LeetCode)
  3. Merge Sorted ArrayEasyLeetCode(opens on LeetCode)
  4. Palindrome NumberEasyLeetCode(opens on LeetCode)
  5. Reverse IntegerEasyLeetCode(opens on LeetCode)
  6. Search Insert PositionEasyLeetCode(opens on LeetCode)
  7. Sqrt(x)EasyLeetCode(opens on LeetCode)
  8. Add and Search Word - Data structure designMediumLeetCode(opens on LeetCode)
  9. Course Schedule IIMediumLeetCode(opens on LeetCode)
  10. Find First and Last Position of Element in Sorted ArrayMediumLeetCode(opens on LeetCode)
  11. Find Peak ElementMediumLeetCode(opens on LeetCode)
  12. Gas StationMediumLeetCode(opens on LeetCode)
  13. Jump Game IIMediumLeetCode(opens on LeetCode)
  14. Longest Palindromic SubsequenceMediumLeetCode(opens on LeetCode)
  15. Majority Element IIMediumLeetCode(opens on LeetCode)
  16. Pow(x, n)MediumLeetCode(opens on LeetCode)
  17. Rotate ArrayMediumLeetCode(opens on LeetCode)
  18. Search a 2D MatrixMediumLeetCode(opens on LeetCode)
  19. Spiral Matrix IIMediumLeetCode(opens on LeetCode)
  20. TriangleMediumLeetCode(opens on LeetCode)
  21. Valid SudokuMediumLeetCode(opens on LeetCode)
  22. CandyHardLeetCode(opens on LeetCode)
  23. Edit DistanceHardLeetCode(opens on LeetCode)
  24. First Missing PositiveHardLeetCode(opens on LeetCode)
  25. Longest Increasing Path in a MatrixHardLeetCode(opens on LeetCode)
  26. Trapping Rain WaterHardLeetCode(opens on LeetCode)

Codeforces12

  1. Beautiful MatrixEasyCodeforces(opens on Codeforces)
  2. Beautiful YearEasyCodeforces(opens on Codeforces)
  3. Did We Get Everything CoveredEasyCodeforces(opens on Codeforces)
  4. Next RoundEasyCodeforces(opens on Codeforces)
  5. Petya and StringsEasyCodeforces(opens on Codeforces)
  6. Phoenix and PuzzleEasyCodeforces(opens on Codeforces)
  7. TeamEasyCodeforces(opens on Codeforces)
  8. Theatre SquareEasyCodeforces(opens on Codeforces)
  9. WatermelonEasyCodeforces(opens on Codeforces)
  10. Way Too Long WordsEasyCodeforces(opens on Codeforces)
  11. Paint the ArrayMediumCodeforces(opens on Codeforces)
  12. Make PalindromeHardCodeforces(opens on Codeforces)

HackerRank9

  1. Apple and OrangeEasyHackerRank(opens on HackerRank)
  2. Birthday Cake CandlesEasyHackerRank(opens on HackerRank)
  3. Breaking the RecordsEasyHackerRank(opens on HackerRank)
  4. Diagonal DifferenceEasyHackerRank(opens on HackerRank)
  5. Grading StudentsEasyHackerRank(opens on HackerRank)
  6. KangarooEasyHackerRank(opens on HackerRank)
  7. Plus MinusEasyHackerRank(opens on HackerRank)
  8. Sock MerchantEasyHackerRank(opens on HackerRank)
  9. Time ConversionEasyHackerRank(opens on HackerRank)

AtCoder7

  1. Frog 1EasyAtCoder(opens on AtCoder)
  2. Frog 2EasyAtCoder(opens on AtCoder)
  3. StonesEasyAtCoder(opens on AtCoder)
  4. Grid 1MediumAtCoder(opens on AtCoder)
  5. Knapsack 1MediumAtCoder(opens on AtCoder)
  6. VacationMediumAtCoder(opens on AtCoder)
  7. Knapsack 2HardAtCoder(opens on AtCoder)

CodeChef6

  1. ATMEasyCodeChef(opens on CodeChef)
  2. Chef and DollsEasyCodeChef(opens on CodeChef)
  3. Chef and NotebooksEasyCodeChef(opens on CodeChef)
  4. Enormous Input TestEasyCodeChef(opens on CodeChef)
  5. Non-Negative ProductEasyCodeChef(opens on CodeChef)
  6. Sum of DigitsEasyCodeChef(opens on CodeChef)

CSES2

  1. Coin Combinations IMediumCSES(opens on CSES)
  2. Coin Combinations IIMediumCSES(opens on CSES)
blur