阅读背景:

[算法]求栈中最小元素

来源:互联网 

如何用O(1)的时间复杂度求栈中最小元素


解题思路:

我们经常会采用空间换取时间提高时间复杂度。我们可以使用两个栈结构,一个栈用来存储数据,另一个栈用来存储栈中的最小元素。思路如下:如果当前入栈的元素比原来栈中的最小值还小,则把这个值压入保存最小元素的栈中;在出栈时,如果当前入栈的元素恰好为当前栈中的最小值,保存最小值的栈顶元素也出栈,使得当前最小值变为其入栈之前的那个最小值。我们经常会采用空间换取时间提高




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: