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