Программа курса:
Разбор задачи: Наименьший диапазон I
Предложенный нами код решения:
def minimizeScore(nums, k):
l, r = min(nums) + k, max(nums) - k
return 0 if l >= r else r - l
1. Определение новых границ
l, r = min(nums) + k, max(nums) - k
- Находим минимальное значение в массиве с помощью
min(nums)и добавляем к немуk. Это задаёт новое потенциальное минимальное значение массива. - Находим максимальное значение в массиве с помощью
max(nums)и вычитаем из негоk. Это задаёт новое потенциальное максимальное значение массива. - Переменные
lиrобозначают эти новые границы:l— минимальное значение после возможных изменений.r— максимальное значение после возможных изменений.
2. Проверка условий
return 0 if l >= r else r - l
- Если новое минимальное значение (
l) больше или равно новому максимальному значению (r), то разница между ними становится равной нулю. Это возможно, если все числа в массиве можно привести к одному значению или они оказываются в пределах одного диапазона. - Если же минимальное значение меньше максимального, то минимальная разница равна
r - l, то есть разнице между новыми границами.
Пример выполнения
Входные данные:
nums = [4, 8, 12]
k = 5
Пошаговое выполнение:
- Находим минимальное и максимальное значения:
- Минимум:
4 - Максимум:
12
- Минимум:
- Вычисляем новые границы:
- Новое минимальное значение:
l = 4 + 5 = 9 - Новое максимальное значение:
r = 12 - 5 = 7
- Новое минимальное значение:
- Проверяем условие:
- Так как
l = 9большеr = 7, возвращается0.
- Так как
- Итог:
- Минимальная разница между элементами массива после операций равна
0.
- Минимальная разница между элементами массива после операций равна
Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии