剑指 Offer II 037. 小行星碰撞

141 阅读1分钟

剑指 Offer II 037. 小行星碰撞

使用栈思想,当遇到负数的时候,这时候就要考虑出栈了,如果是整数就得入栈, 很简单,看代码就懂,不过多解释了

var asteroidCollision = function (arr) {
  var brr = [];
  for (var item of arr) {
    while (
      brr.length &&
      brr[brr.length - 1] > 0 &&
      brr[brr.length - 1] < -item
    ) {
      brr.pop();
    }
    if (brr.length && item < 0 && brr[brr.length - 1] === -item) {
      brr.pop();
    } else if (item > 0 || !brr.length || brr[brr.length - 1] < 0) {
      brr.push(item);
    }
  }
  return brr;
};