Код Senior Стек и монотонный стек обновлено

Столкновение астероидов

Условие

Числа - астероиды: положительные летят вправо, отрицательные влево, модуль - размер. При столкновении меньший исчезает, равные исчезают оба. Верни итоговое состояние.

Примеры

asteroidCollision([5, 10, -5]) // [5, 10]
asteroidCollision([8, -8]) // []
asteroidCollision([10, 2, -5]) // [10]

Как подойти

Стек хранит выживших. Условие столкновения ровно одно: вершина положительна, текущий отрицателен. Внутренний while обязателен - один крупный астероид сносит цепочку мелких.

Подсказки: 2
  1. Столкновение возможно только когда слева летит вправо, а текущий влево.
  2. Один астероид может снести несколько - нужен цикл, а не одно сравнение.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме