Faaez Razeen

Minimum Number of Operations to Make Array Empty

  • 1 min read
  • Array
  • LC-Medium

3 years ago

My Solution

def minOperations(self, nums: List[int]) -> int: num_operations = 0 current_size = len(nums) counts = [(-freq, num) for num, freq in Counter(nums).items()] heapify(counts) while counts: freq, num = heappop(counts) freq *= -1 if freq == 1: return -1 if freq % 3 == 0: freq -= 3 elif freq % 2 == 0: freq -= 2 else: freq -= 3 num_operations += 1 if freq: heappush(counts, (-freq, num)) return num_operations

Optimal Solution

💀💀

def minOperations(self, nums: List[int]) -> int: num_operations = 0 for freq in Counter(nums).values(): if freq == 1: return -1 num_operations += ceil(freq / 3) return num_operations