下面我自己调了一万年的狗屎算法
我的思路是这样的
- 如果数组非空
- 判断新来的和老的是否同号
- 同号push
- 异号->判断是相近还是相离
- 相离,push
- 相近->判断尾部函数是不是大于新来的元素的绝对值
- 大于->撞死,下一轮循环
- 等于->pop+continue
- 小于->pop,再和栈顶比较
- 到最后判断栈顶是否同号
- 同号:push
- 异号->判断栈顶是不是大于或等于
- 大于->continue
- 等于->pop+continue
- 判断新来的和老的是否同号
- 如果数组为空
- push
1 | class Solution { |
利用递归和梳理思路,其实可以更简单的表达
1 | class Solution { |