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