Задачи с кодом

Пары чисел с минимальной разностью

Напишите функцию, которая будет принимать список чисел и возвращать два числа, абсолютная разность которых минимальна. Пару чисел нужно вернуть в виде списка, отсортированного по возрастанию.

Если в списке есть несколько пар чисел с одинаковой абсолютной разностью, выберите ту пару, которая в сумме даст наименьшее число.

Хотите скачать книги по Python в 2 клика? Тогда вам в наш телеграм канал PythonBooks 

В списке не будет дублирующихся значений.

Примеры

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]
Марина

Recent Posts

Как проверить существование файла с помощью Python

В Python проверка существования файла перед попыткой его использования является обычной задачей, особенно если вы…

16 часов ago

Абсолютное значение числа в Python

При анализе данных часто требуется быстро найти абсолютное значение набора чисел. Для выполнения этой задачи…

1 неделя ago

Библиотека Pydantic: валидация данных на Python

Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…

2 недели ago

7 наилучших библиотек визуализации Python на 2024 год

Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…

3 недели ago

Как преобразовать строку в байты в Python

В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…

4 недели ago

Что такое Werkzeug?

В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…

1 месяц ago