735. Asteroid Collision (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution:
    def asteroidCollision(self, asteroids: List[int]) -> List[int]:
        stack = []
        for num in asteroids:
            if num > 0:
                stack.append(num)
            else:
                while stack and abs(num) > stack[-1]:
                    if stack[-1] > 0:
                        stack.pop()
                    else:
                        stack.append(num)
                        break
                if not stack:
                    stack.append(num)
                if stack and abs(num) == stack[-1]:
                    stack.pop()
        return stack