Leetcode_735 Asteroid Collision

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37567543/article/details/78687805



We are given an array asteroids of integers representing asteroids in a row.

For each asteroid, the absolute value represents its size, and the sign represents its direction (positive meaning right, negative meaning left). Each asteroid moves at the same speed.

Find out the state of the asteroids after all collisions. If two asteroids meet, the smaller one will explode. If both are the same size, both will explode. Two asteroids moving in the same direction will never meet.

Example 1:

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

Example 2:

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

Example 3:

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

Example 4:

asteroids = [-2, -1, 1, 2]
Output: [-2, -1, 1, 2]
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.


  • The length of asteroids will be at most 10000.
  • Each asteroid will be a non-zero integer in the range [-1000, 1000]..







Problem DescriptionnMatt is playing a naive computer game with his deeply loved pure girl.nnThe playground is a rectangle with walls around. Two balls are put in different positions inside the rectangle. The balls are so tiny that their volume can be ignored. Initially, two balls will move with velocity (1, 1). When a ball collides with any side of the rectangle, it will rebound without loss of energy. The rebound follows the law of refiection (i.e. the angle at which the ball is incident on the wall equals the angle at which it is reflected).nnAfter they choose the initial position, Matt wants you to tell him where will the two balls collide for the first time.n nnInputnThe first line contains only one integer T which indicates the number of test cases.nnFor each test case, the first line contains two integers x and y. The four vertices of the rectangle are (0, 0), (x, 0), (0, y) and (x, y). (1 ≤ x, y ≤ 105)nnThe next line contains four integers x1, y1, x2, y2. The initial position of the two balls is (x1, y1) and (x2, y2). (0 ≤ x1, x2 ≤ x; 0 ≤ y1, y2 ≤ y)n nnOutputnFor each test case, output “Case #x:” in the first line, where x is the case number (starting from 1). nnIn the second line, output “Collision will not happen.” (without quotes) if the collision will never happen. Otherwise, output two real numbers xc and yc, rounded to one decimal place, which indicate the position where the two balls will first collide.n nnSample Inputn3n10 10n1 1 9 9n10 10n0 5 5 10n10 10n1 0 1 10n nnSample OutputnCase #1:n6.0 6.0nCase #2:nCollision will not happen.nCase #3:n6.0 5.0n 问答