lc-go/solutions/7/q735/solution.go

24 lines
472 B
Go

// Package q735 implements a solution for https://leetcode.com/problems/asteroid-collision/
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