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;
}
profile-image
Hi, 我是 Zeki。目前為一名前端工程師。我相信科技始終來自於人性,是用來幫助人們過上更有品質的生活的,但願也希望如此。