input: Write a function to find the most common elements in an array of integers. Return a list of the elements that have the highest frequency in the array. If there are multiple elements with the same highest frequency, return all of them. If the array is empty, return an empty list.
  
  def most_common(nums):
      counts = {}
      for num in nums:
          if num not in counts:
              counts[num] = 0
          counts[num] += 1
      max_count = max(counts.values(), default=0)
      return [num for num, count in counts.items() if count == max_count]
  
  assert most_common([3, 4, 1, 2, 5, 3, 3])==[3]
  assert most_common([4, 4, 4, 1, 3, 3, 3])==[4, 3]
  assert most_common([1])==[1]
  assert most_common([])==[]
  assert most_common([1, 1, 1, 2, 2, 3, 4, 4, 4])==[1, 4]
output: def most_common(nums):
      counts = {}
      for num in nums:
          if num not in counts:
              counts[num] = 0
          counts[num] += 1
      max_count = max(counts.values(), default=0)
      return [num for num, count in counts.items() if count == max_count]