function asteroidCollision(asteroids: number[]): number[] {
const stk: number[] = [];
for (const x of asteroids) {
if (x > 0) {
stk.push(x);
} else {
while (stk.length && stk.at(-1) > 0 && stk.at(-1) < -x) {
stk.pop();
}
if (stk.length && stk.at(-1) === -x) {
stk.pop();
} else if (!stk.length || stk.at(-1) < 0) {
stk.push(x);
}
}
}
return stk;
}