2610. Convert an Array Into a 2D Array With Conditions

Difficulty:
Related Topics:
Similar Questions:

    Problem

    You are given an integer array nums. You need to create a 2D array from nums satisfying the following conditions:

    Return the resulting array. If there are multiple answers, return any of them.

    Note that the 2D array can have a different number of elements on each row.

      Example 1:

    Input: nums = [1,3,4,1,2,3,1]
    Output: [[1,3,4,2],[1,3],[1]]
    Explanation: We can create a 2D array that contains the following rows:
    - 1,3,4,2
    - 1,3
    - 1
    All elements of nums were used, and each row of the 2D array contains distinct integers, so it is a valid answer.
    It can be shown that we cannot have less than 3 rows in a valid array.
    

    Example 2:

    Input: nums = [1,2,3,4]
    Output: [[4,3,2,1]]
    Explanation: All elements of the array are distinct, so we can keep all of them in the first row of the 2D array.
    

      Constraints:

    Solution

    /**
     * @param {number[]} nums
     * @return {number[][]}
     */
    var findMatrix = function(nums) {
        var numMap = Array(nums.length + 1).fill(0);
        var res = [];
        for (var i = 0; i < nums.length; i++) {
            var num = nums[i];
            var row = numMap[nums[i]];
            if (!res[row]) {
                res.push([]);
            }
            res[row].push(num);
            numMap[num]++;
        }
        return res;
    };
    

    Explain:

    nope.

    Complexity: