LeetCode – Array of Doubled Pairs

Link: https://leetcode.com/problems/array-of-doubled-pairs/

/**
 * @param {number[]} arr
 * @return {boolean}
 */
var canReorderDoubled = function(arr) {
    arr.sort((a,b) => b - a);
    var map = {};
    var pairs = 0;

    for(var i = 0; i < arr.length; i++)
    {
        if(map[arr[i]] === undefined)
        {
            var half = arr[i] > 0 ? arr[i] / 2 : arr[i] * 2;

            if (map[half] === undefined)
                map[half] = 1;
            else
                map[half] += 1;
        }
        else
        {
            pairs++;
            map[arr[i]] -= 1;
            if(map[arr[i]] === 0)
                delete map[arr[i]];
        }
    }
    
    map = {};

    return pairs == arr.length / 2
};

Leave a Reply

Your email address will not be published. Required fields are marked *