Напишите функцию, которая будет принимать список чисел и возвращать два числа, абсолютная разность которых минимальна. Пару чисел нужно вернуть в виде списка, отсортированного по возрастанию.
Если в списке есть несколько пар чисел с одинаковой абсолютной разностью, выберите ту пару, которая в сумме даст наименьшее число.
Друзья, подписывайтесь на наш телеграм канал Pythonist. Там еще больше туториалов, задач и книг по Python.
В списке не будет дублирующихся значений.
min_difference_pair([40, 16, 8, 17, 15]) ➞ [15, 16] # Сумма [15, 16] меньше, чем сумма [16, 17] min_difference_pair([1, -31, -27, -18, -48, -15, -11, -34]) ➞ [-34, -31] min_difference_pair([0, 2, 35, 42, 45, 14, -6, -1]) ➞ [-1, 0] min_difference_pair([32, 33, 4, 6, 48, 18, 20, -7, -4, 31]) ➞ [31, 32]
def min_difference_pair(nums):
nums.sort()
return list(min([i for i in zip(nums, nums[1:])], key=lambda x: x[1] - x[0])) def min_difference_pair(nums):
n = sorted(nums)
diffs = [n[i] - n[i - 1] for i in range(1, len(n))]
idx = diffs.index(min(diffs))
return n[idx:idx + 2] def min_difference_pair(nums):
nums.sort()
n = [nums[0], nums[1], abs(nums[1] - nums[0])]
for i in range(2, len(nums)):
if abs(nums[i] - nums[i - 1]) < n[2]: n = [nums[i - 1], nums[i], abs(nums[i - 1] - nums[i])]
return n[:2] Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…