Distribute Repeating Integers LeetCode solution in JavaScript

1
var canDistribute = function (nums, quantity) {
2
quantity.sort((a, b) => b - a);
3
let freq = {},
4
flag = false;
5
for (let num of nums) freq[num] = (freq[num] || 0) + 1;
6
let set = Object.keys(freq),
7
n = set.length,
8
k = quantity.length;
9
let rec = (prefix) => {
10
if (prefix.length == k || flag == true) return (flag = true);
11
for (let i = 0; i < n; i++) {
12
freq[set[i]] -= quantity[prefix.length];
13
prefix.push(set[i]);
14
if (freq[set[i]] >= 0) rec(prefix);
15
prefix.pop();
16
freq[set[i]] += quantity[prefix.length];
17
}
18
};
19
rec([]);
20
return flag;
21
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0