input: Write a function to find the most common elements in an array of integers. 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):
      if not nums:
          return []
      counts = {}
      for num in nums:
          if num not in counts:
              counts[num] = 0
          counts[num] += 1
      max_count = max(counts.values())
      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, 1, 2, 5, 5, 5])==[5]
  assert most_common([1, 2, 3, 4, 5])==[1, 2, 3, 4, 5]
  assert most_common([4, 4, 4, 1, 2, 5, 5, 2, 2])==[4, 2]
  assert most_common([])==[]
output: def most_common(nums):
      if not nums:
          return []
      counts = {}
      for num in nums:
          if num not in counts:
              counts[num] = 0
          counts[num] += 1
      max_count = max(counts.values())
      return [num for num, count in counts.items() if count == max_count]