MinimumStack题目描述:设计一个支持push、pop、top操作,并能在常数时间内取回最小元素的栈。push(x)–将元素x压入堆栈。pop()-移除堆栈顶部的元素。top()-获取栈顶元素。getMin()-检索堆栈中的最小元素。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode网络所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:双栈使用两个栈,一个栈data存放数据,一个栈minVal存放最小值。具体方法逻辑:push():将val值放入数据栈顶,判断val值是否小于等于minVal栈顶元素,如果是,则将val值放入栈顶minVal堆栈的顶部;pop():取出数据栈顶元素,判断取出的元素是否等于minVal栈顶元素,则将minVal栈顶元素取出;top():查看数据栈顶元素;getMin():查看栈顶元素的minVal。importjava.util.Stack;publicclassLeetCode_155{publicstaticvoidmain(String[]args){MinStackminStack=newMinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);System.out.println(minStack.getMin());//返回-3。minStack.pop();System.out.println(minStack.top());//返回0.System.out.println(minStack.getMin());//返回-2。}}classMinStack{privateStack
