Ctrl K

Самый ходовой остаток на складе

Средняя
Склад ведёт журнал операций. Операция номер i — это пара items[i] и changes[i]: товар с кодом items[i] либо привозят (changes[i] > 0 штук), либо отгружают (-changes[i] штук, если changes[i] < 0). Изначально склад пуст. После каждой операции нужно знать, сколько штук у товара, которого на складе больше всего. Верните массив той же длины: в позиции i — максимальный остаток одного товара после выполнения операции i, или 0, если склад в этот момент пуст. Гарантируется, что отгружают не больше, чем есть: остаток любого товара никогда не становится отрицательным.
Пример 1
items=[4, 9, 4, 9], changes=[5, 3, -4, 1] → [5, 5, 3, 4]

После шагов на складе: {4: 5} → {4: 5, 9: 3} → {4: 1, 9: 3} → {4: 1, 9: 4}. Самые большие остатки: 5, 5, 3, 4.

Пример 2
items=[7, 7, 2], changes=[2, -2, 6] → [2, 0, 6]

После второго шага склад пуст, поэтому там 0.

Пример 3
items=[1, 2, 3], changes=[1, 1, 1] → [1, 1, 1]
Ограничения
  • 1 ≤ len(items) = len(changes) ≤ 10⁵
  • 1 ≤ items[i] ≤ 10⁵
  • -10⁵ ≤ changes[i] ≤ 10⁵, changes[i] ≠ 0
  • Остаток каждого товара всегда неотрицателен
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамые частые значения СредняяЗадания с перерывом на остывание СредняяСерии подряд идущих чисел СредняяСамые частые запросы СредняяМетки вразнобой Средняя
загружаем Python…
Вход
items=[4, 9, 4, 9], changes=[5, 3, -4, 1]
Ожидается
[5, 5, 3, 4]

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