Источник:



Нам дан массив asteroids целых чисел, представляющих астероиды в ряду.

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

Узнайте состояние астероидов после всех столкновений. Если встретятся два астероида, меньший взорвется. Если оба имеют одинаковый размер, оба взорвутся. Два астероида, движущиеся в одном направлении, никогда не встретятся.

Пример 1:

Input: 
asteroids = [5, 10, -5]
Output: [5, 10]
Explanation: 
The 10 and -5 collide resulting in 10.  The 5 and 10 never collide.

Пример 2:

Input: 
asteroids = [8, -8]
Output: []
Explanation: 
The 8 and -8 collide exploding each other.

Пример 3:

Input: 
asteroids = [10, 2, -5]
Output: [10]
Explanation: 
The 2 and -5 collide resulting in -5.  The 10 and -5 collide resulting in 10.

Пример 4:

Input: 
asteroids = [-2, -1, 1, 2]
Output: [-2, -1, 1, 2]
Explanation: 
The -2 and -1 are moving left, while the 1 and 2 are moving right.
Asteroids moving the same direction never meet, so no asteroids will meet each other.

Примечание.

  • Длина asteroids будет не более 10000.
  • Каждый астероид будет ненулевым целым числом в диапазоне [-1000, 1000]..

Мое решение для С# и Python находится здесь:

https://github.com/jiajionline/LeetcodeSolutionWithMultipleLanguages/tree/master/0735_Asteroid%20Collision