Monday, October 15, 2018

[LeetCode]Asteroid Collision


这道题我们直接需要用到stack,具体的思路是,对于当前数curr:

  • 如果curr是正数,压入stack
  • 如果curr是负数,当且仅当栈顶有元素,并且是正数,而且小于curr的绝对值,pop栈顶元素
    • 如果栈空了或者栈顶元素为负数,curr压入栈
    • 如果栈顶元素大于0并且和curr绝对值一样,pop栈顶,继续下一个元素
    • 否则,栈顶元素为正,并且大于curr的绝对值,curr被碾碎,继续下一个元素
时间/空间复杂度均为O(N),代码如下:


No comments:

Post a Comment