Magicsheet logo

Convert an Array Into a 2D Array With Conditions

Medium
89.9%
Updated 6/1/2025

Convert an Array Into a 2D Array With Conditions

What is this problem about?

The Convert an Array Into a 2D Array With Conditions interview question gives you an integer array. You need to create a 2D array such that:

  1. All elements from the 1D array are used.
  2. Each row in the 2D array contains distinct integers.
  3. The number of rows in the 2D array is minimized.

Why is this asked in interviews?

This Convert an Array Into a 2D Array With Conditions coding problem is common at Apple and Uber. It tests basic frequency counting and greedy organization. It's a practical test of whether a candidate can use a Hash Table to solve a grouping problem in O(N) time.

Algorithmic pattern used

This follows the Array, Hash Table interview pattern.

  • The number of rows needed is equal to the maximum frequency of any single element in the array.
  • As you iterate through the array, keep track of the count of each number seen so far.
  • If you see a number for the k-th time, place it in the k-th row (row index k-1).
  • If the row doesn't exist yet, create a new one.

Example explanation

Array: [1, 3, 4, 1, 2, 3, 1]

  1. 1: Count=1. Add to Row 0. [[1]]
  2. 3: Count=1. Add to Row 0. [[1, 3]]
  3. 4: Count=1. Add to Row 0. [[1, 3, 4]]
  4. 1: Count=2. Add to Row 1. [[1, 3, 4], [1]]
  5. 2: Count=1. Add to Row 0. [[1, 3, 4, 2], [1]]
  6. 3: Count=2. Add to Row 1. [[1, 3, 4, 2], [1, 3]]
  7. 1: Count=3. Add to Row 2. [[1, 3, 4, 2], [1, 3], [1]]

Common mistakes candidates make

  • Sorting: Sorting the array is not necessary and makes the solution O(N log N) instead of O(N).
  • Searching rows: Checking every row to see if it contains the number (O(N^2)) instead of using a frequency map to jump directly to the right row.
  • Fixed row counts: Forgetting that rows need to be added dynamically as counts increase.

Interview preparation tip

For grouping problems, always think about Frequency Counting first. The number of times an element repeats often dictates the structure of the final output.

Similar Questions