lc-go/solutions/7/q735/solution.go
2026-01-25 11:56:12 +09:00

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