23 lines
380 B
Go
23 lines
380 B
Go
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
|