如何实现具备getMin功能的栈设计?
- 内容介绍
- 文章标签
- 相关推荐
本文共计720个文字,预计阅读时间需要3分钟。
一、题目:实现一个特殊的栈,实现栈的基本功能并实现返回栈中最小元素的操作。
二、要求:
1.求1、pop、push、getMin操作的时空复杂度均为O(1)。
2.设计的栈类可以使用现有的栈结构。
3.分析实现过程。
三、分析:
1.使用两个栈,一个用于存储所有元素(栈S),另一个用于存储当前栈中最小元素(栈minS)。
2.当push元素时,如果该元素小于等于minS栈顶元素,则将其同时push到minS栈中。
3.当pop元素时,如果该元素等于minS栈顶元素,则将minS栈顶元素也pop出来。
4.当getMin操作时,直接返回minS栈顶元素。
本文共计720个文字,预计阅读时间需要3分钟。
一、题目:实现一个特殊的栈,实现栈的基本功能并实现返回栈中最小元素的操作。
二、要求:
1.求1、pop、push、getMin操作的时空复杂度均为O(1)。
2.设计的栈类可以使用现有的栈结构。
3.分析实现过程。
三、分析:
1.使用两个栈,一个用于存储所有元素(栈S),另一个用于存储当前栈中最小元素(栈minS)。
2.当push元素时,如果该元素小于等于minS栈顶元素,则将其同时push到minS栈中。
3.当pop元素时,如果该元素等于minS栈顶元素,则将minS栈顶元素也pop出来。
4.当getMin操作时,直接返回minS栈顶元素。

