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

Medium 2 решили
Дан массив целых чисел asteroids. Каждый элемент — астероид на одной числовой оси (позиции идут слева направо в порядке массива):
• знак — направление: положительный летит вправо, отрицательный — влево;
• модуль — размер астероида.
Нулей в массиве нет.

Когда бывает столкновение. Два астероида сталкиваются, только если левый летит вправо, а правый — влево (они движутся навстречу). Если оба летят в одну сторону или «разъезжаются» (слева отрицательный, справа положительный), они не встречаются.

Правила при встрече (сравнивают модули размеров):
• меньший уничтожается, больший продолжает полёт;
• при равных модулях уничтожаются оба;
• уцелевший может сразу столкнуться со следующим на пути — столкновения идут цепочкой, пока навстречу есть противник.

Верните массив астероидов, которые останутся, в том же порядке слева направо.

Пример: [5, 10, -5]

  5 →     10 →     ← -5

−5 летит навстречу 10. |−5| < 10 → −5 уничтожен.
5 и 10 оба летят вправо — не сталкиваются.
Ответ: [5, 10]

Примеры:

Вход: [5, 10, -5]
Выход: [5, 10]
Объяснение: −5 летит навстречу 10 и меньше по модулю — уничтожается. 5 и 10 оба вправо, не встречаются → [5, 10].
Вход: [8, -8]
Выход: []
Объяснение: 8 и −8 встречаются с равным размером — оба исчезают → [].
Вход: [10, 2, -5]
Выход: [10]
Объяснение: Сначала 2 сталкивается с −5 и гибнет. Затем 10 встречается с −5: 10 больше → −5 уничтожен. Остаётся [10].
Вход: [-2, -1, 1, 2]
Выход: [-2, -1, 1, 2]
Объяснение: Слева все летят влево, справа — вправо: они разъезжаются, встречных пар нет → массив без изменений.

Ограничения:

1 <= asteroids.length <= 10^4 -1000 <= asteroids[i] <= 1000 asteroids[i] != 0

Теги:

Массивы Стек

Комментарии (1)

Зарегистрируйтесь или войдите, чтобы оставить комментарий

avatar
admin
@diavolo4799 Добрый день! могу постараться помочь с задачей. в переменной asteroids уже перечислены все элементы массива астероидов, попробуйте оперировать над ними. а так же результат требуется выводить через функцию return. Если будут нужна дополнительная помощь, сообщите в комментариях
👍 0 👎 0