Напишите функцию, которая будет принимать список чисел, сортировать его и возвращать наибольшую разность между соседними числами.
Например, список [9, 4, 26, 26, 0, 0, 5, 20, 6, 25, 5]
после сортировки превращается в [0, 0, 4, 5, 5, 6, 9, 20, 25, 26, 26]
. Наибольшая разность — 11 — между 9 и 20.
Примеры
largest_gap([9, 4, 26, 26, 0, 0, 5, 20, 6, 25, 5]) ➞ 11 # После сортировки получаем [0, 0, 4, 5, 5, 6, 9, 20, 25, 26, 26] # Наибольшая разность - 11, между 9 и 20 largest_gap([14, 13, 7, 1, 4, 12, 3, 7, 7, 12, 11, 5, 7]) ➞ 4 # После сортировки получаем [1, 3, 4, 5, 7, 7, 7, 7, 11, 12, 12, 13, 14] # Наибольшая разность - 4, между 7 и 11 largest_gap([13, 3, 8, 5, 5, 2, 13, 6, 14, 2, 11, 4, 10, 8, 1, 9]) ➞ 2 # После сортировки получаем [1, 2, 2, 3, 4, 5, 5, 6, 8, 8, 9, 10, 11, 13, 13, 14] # Наибольшая разность - 2, между 6 и 8
Варианты решения
def largest_gap(r): return max(y - x for x, y in zip(sorted(r), sorted(r)[1:]))
def largest_gap(lst): lst.sort() return max(b - a for a, b in zip(lst, lst[1:]))