定义栈的数据结构请在该类型Φ实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
注意:保证测试中不会当栈为空的时候对栈调用pop()或者min()或者top()方法。
【注意两种实现的区别:】
思路1:用两个栈实现一个栈s1用来存储原值,一个辅助栈s2用来存储当前栈中的min基本实现:
1)若s2为空,则value入棧;
3)每次弹栈时s1和s2都要弹栈。
思路2:用两个栈实现一个栈s1用来存储原值,一个辅助栈s2用来存储当前栈中的min基本实现:
3)每次弹栈時,先比较s1和s2的栈顶元素值若相同,则都弹栈否则,只弹栈s1