Asteroid Collision
LeetCode題目: 735. Asteroid Collision
My solution:
/**
* @param {number[]} asteroids
* @return {number[]}
*/
let asteroidCollision = asteroids => {
let pointer = 0, stateStack = [];
while(pointer < asteroids.length) {
if(asteroids[pointer] > 0) stateStack.push(asteroids[pointer]);
else if(stateStack.length === 0 || stateStack.slice(-1)[0] < 0) stateStack.push(asteroids[pointer]);
else if(stateStack.slice(-1)[0] <= Math.abs(asteroids[pointer])) {
if(stateStack.slice(-1)[0] < Math.abs(asteroids[pointer])) pointer--;
stateStack.pop();
}
pointer++;
}
return stateStack;
}