一、笔记部分
push这个已经将其他方法都已经代替了。Push已经使得后面的方面没有什么意义了。
我这个Push里面有while,如果本来数就比较多,就意味着,我要添加一个数的时候,那就要将栈里的数来回导入导出,复杂度是O(n)
更有效率的解法:
要好好利用两个栈,不是只是在push将全部的任务都做了
用的时候再取出来。 他这个实则就是移动了一次,到需要的时候就把新压入的转到out栈里,先压入的都在In栈里。所以进行每次查找,推出的操作的时候,都需要先将in栈里的换到out栈里。
相当于out栈的最上面的那个数一直是最先进入in栈的,只有当Out栈没有的时候才会把in栈的压入Out栈,这样才不会把Out栈里的元素覆盖。
二、栈和队列结构类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112974341
三、各种类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112556249