Ctrl K

Скидка от соседа подешевле

Лёгкая
На полке в ряд стоят товары, prices[i] — цена товара на позиции i. В магазине действует акция: покупая товар i, вы получаете скидку, равную цене ближайшего товара правее него, который стоит не дороже (prices[j] ≤ prices[i] при наименьшем j > i). Если такого товара нет, скидки нет. Верните массив, где на позиции i стоит итоговая цена товара i с учётом скидки.
Пример 1
prices=[6, 9, 3, 5, 5] → [3, 6, 3, 0, 5]

6 → ближайшая справа цена не выше 6 — это 3, платим 3. 9 → тоже 3, платим 6. 3 → правее нет цен не выше 3, скидки нет. Первая 5 → следующая 5 подходит (равная цена тоже считается), платим 0. Последняя 5 стоит без скидки.

Пример 2
prices=[2, 4, 8] → [2, 4, 8]

Цены справа только растут, поэтому скидки нет ни у одного товара.

Пример 3
prices=[1000] → [1000]
Ограничения
  • 1 ≤ prices.length ≤ 500
  • 1 ≤ prices[i] ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСледующее большее справа ЛёгкаяВода между стенами СложнаяСамый большой прямоугольник под силуэтом СложнаяСамый большой горящий блок СложнаяПрямой обход дерева поиска Средняя
загружаем Python…
Вход
prices=[6, 9, 3, 5, 5]
Ожидается
[3, 6, 3, 0, 5]

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