
Asteroid Collision (medium)
Problem Statement
You are given an integer array asteroids of size n, where asteroids[i] represents the size and direction of the i<sup>th</sup> asteroid.
The size of an asteroid is represented by the absolute value of asteroids[i], and its direction is indicated by the integer's sign: positive for rightward and negative for leftward. Each asteroid moves at the same speed.
When two asteroids collide, the smaller one shatters. If they are of equal size, both are destroyed. Asteroids moving in the same direction never collide.
Return the final state of asteroids after all possible collisions have been resolved.
Examples
-
Example 1:
- Input: asteroids =
[8, -3, 4, -5] - Expected Output:
[8] - Justification: The asteroid
4collides with-5, and since-5is larger,4is destroyed. Next,-3and-5get destroyed when they collide with 8.
- Input: asteroids =
-
Example 2:
- Input: asteroids =
[-2, -1, 1, 2] - Expected Output:
[-2, -1, 1, 2] - Justification: Since the asteroids are moving in opposite directions, there are no collisions.
- Input: asteroids =
-
Example 3:
- Input: asteroids =
[5, -3, 8, -2, -4, 1, -1] - Expected Output:
[5, 8] - Justification: The sequence of interactions is as follows:
5and-3collide, and-3will get destroyed.8and-2collide, and-2will get destroyed.-4will be destroyed after collision with8.1and-1collide and both are destroyed because they have the same magnitude but opposite directions.- The final configuration is
[5, 8], as these asteroids survive without further collisions.
- Input: asteroids =
Constraints:
- 2 <= asteroids.length <= 10<sup>4</sup>
- -1000 <= asteroids[i] <= 1000
- asteroids[i] != 0
Try it yourself
Try solving this question here:
Python3
Python3
. . . .
.....
.....
.....
Unlock this and all other premium problems.
No code editor for this lesson
This lesson focuses on concepts and theory