Ctrl K

Раздвинуть до различных

Средняя
Дан массив целых чисел values и число shift. К каждому элементу можно не больше одного раза прибавить любое целое число из отрезка [-shift, shift] (можно и ничего не менять). Верните наибольшее количество различных значений, которое может оказаться в массиве после таких изменений.
Пример 1
values=[5, 5, 5, 6], shift=1 → 4

Пятёрки можно превратить в 4, 5 и 6, а шестёрку — в 7. Все четыре числа разные.

Пример 2
values=[3, 3, 3, 3, 3], shift=1 → 3

Каждая тройка может стать только 2, 3 или 4, поэтому различных значений не больше трёх.

Пример 3
values=[7, 2, 7], shift=0 → 2
Ограничения
  • 1 ≤ len(values) ≤ 10⁵
  • 1 ≤ values[i] ≤ 10⁹
  • 0 ≤ shift ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяСтудии для записи СредняяНизко — высоко — низко СредняяСтрого низко — высоко СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
values=[5, 5, 5, 6], shift=1
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 123 теста на сервере, включая скрытые.