package q735 func asteroidCollision(asteroids []int) []int { p := 0 for _, a := range asteroids { if a < 0 { for p > 0 && asteroids[p-1] > 0 && asteroids[p-1] < -a { p-- } if p > 0 && asteroids[p-1] > 0 { if asteroids[p-1] == -a { p-- } continue // explode } } asteroids[p] = a p++ } return asteroids[:p] } var _ = asteroidCollision