2870. Minimum Number of Operations to Make Array Empty

Difficulty:
Related Topics:
Similar Questions:

    Problem

    You are given a 0-indexed array nums consisting of positive integers.

    There are two types of operations that you can apply on the array any number of times:

    Return **the *minimum* number of operations required to make the array empty, or -1 if it is not possible**.

      Example 1:

    Input: nums = [2,3,3,2,2,4,2,3,4]
    Output: 4
    Explanation: We can apply the following operations to make the array empty:
    - Apply the first operation on the elements at indices 0 and 3. The resulting array is nums = [3,3,2,4,2,3,4].
    - Apply the first operation on the elements at indices 2 and 4. The resulting array is nums = [3,3,4,3,4].
    - Apply the second operation on the elements at indices 0, 1, and 3. The resulting array is nums = [4,4].
    - Apply the first operation on the elements at indices 0 and 1. The resulting array is nums = [].
    It can be shown that we cannot make the array empty in less than 4 operations.
    

    Example 2:

    Input: nums = [2,1,2,2,3,3]
    Output: -1
    Explanation: It is impossible to empty the array.
    

      Constraints:

    Solution

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var minOperations = function(nums) {
        var map = {};
        for (var i = 0; i < nums.length; i++) {
            var num = nums[i];
            map[num] = map[num] || 0;
            map[num] += 1;
        }
        var keys = Object.keys(map);
        var res = 0;
        for (var j = 0; j < keys.length; j++) {
            var num = keys[j];
            if (map[num] === 1) return -1;
            res += Math.ceil(map[num] / 3);
        }
        return res;
    };
    

    Explain:

    nope.

    Complexity: