numbers.min
возвращает число, а не массив. Вы не можете вызвать uniq
для него, это не метод для чисел.
Ваш код в первой ветви успешно удалит только первый экземпляр с наименьшим числом без .uniq
, поскольку numbers.index
находит первое вхождение.
Фактически весь блок if / else является избыточным. Первая ветвь обрабатывает оба типа ввода, поэтому нет особого смысла в определении особого случая для многих против одного:
def remove_smallest(array)
array.delete_at(array.index(array.min))
array
end
p remove_smallest([1, 2, 3, 4]) # [2, 3, 4]
p remove_smallest([4, 3, 1, 2, 1]) # [4, 3, 2, 1]