Код Senior Стек и монотонный стек обновлено
Столкновение астероидов
Условие
Числа - астероиды: положительные летят вправо, отрицательные влево, модуль - размер. При столкновении меньший исчезает, равные исчезают оба. Верни итоговое состояние.
Примеры
asteroidCollision([5, 10, -5]) // [5, 10]
asteroidCollision([8, -8]) // []
asteroidCollision([10, 2, -5]) // [10]
Как подойти
Стек хранит выживших. Условие столкновения ровно одно: вершина положительна, текущий отрицателен. Внутренний while обязателен - один крупный астероид сносит цепочку мелких.
Подсказки: 2
- Столкновение возможно только когда слева летит вправо, а текущий влево.
- Один астероид может снести несколько - нужен цикл, а не одно сравнение.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.