本专题用于总结在刷题过程中用到的有关栈相关的知识点。
通常栈是不考虑排序的数据结构,要找栈中的最值,通常需要O(n) 的时间。要求你给出一个O(1)时间求的最小值的算法。
解: 如果考虑在栈中保留一个临时变量存储最小值,那么一旦该最小值出栈,则无法维护新的最小值。
所以,在这里考虑了一个新的方法: 即使用一个数据栈保留数据,同时使用一个辅助栈。该辅助栈保存当前的最小值。
数据栈每进行一次push操作,在辅助栈中就存一次当前的最小值。
原文:https://www.cnblogs.com/vector11248/p/10497997.html