Distribute Repeating Integers LeetCode solution in Python
1from collections import Counter, defaultdict234class Solution:5def canDistribute(self, nums: List[int], quantity: List[int]) -> bool:6quantity.sort(reverse=True)7freqCounts = defaultdict(int, Counter(Counter(nums).values()))89def backtrack(i: int = 0) -> bool:10if i == len(quantity):11return True1213for freq, count in list(freqCounts.items()):14if freq >= quantity[i] and count > 0:15freqCounts[freq] -= 116freqCounts[freq - quantity[i]] += 117if backtrack(i + 1):18return True19freqCounts[freq] += 120freqCounts[freq - quantity[i]] -= 12122return False2324return backtrack()