珠海网站排名提升,做网站一年赚80亿,造价信息网,全国新冠最新消息设计一个支持 push #xff0c;pop #xff0c;top 操作#xff0c;并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin(…设计一个支持 push pop top 操作并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。 示例 1:输入[MinStack,push,push,push,getMin,pop,top,getMin][[],[-2],[0],[-3],[],[],[],[]]输出[null,null,null,null,-3,null,0,-2]解释MinStack minStack new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin(); -- 返回 -3.minStack.pop();minStack.top(); -- 返回 0.minStack.getMin(); -- 返回 -2. 提示1、-231 val 231 - 12、pop、top 和 getMin 操作总是在 非空栈 上调用3、push, pop, top, and getMin最多被调用 3 * 104 次思路建立一个正常栈另外一个栈为最小栈push方法如果第二个元素大于第一个元素则最小栈不入正常栈入反之都入pop方法正常栈出直到出的元素等于最小栈的栈顶元素都出代码class MinStack {private StackInteger stack;private StackInteger minStack;public MinStack() {this.stacknew Stack();this.minStacknew Stack();}public void push(int val) {stack.push(val);if (minStack.empty()){minStack.push(val);}else {if (valminStack.peek()) {minStack.push(val);}}}public void pop() {if (stack.empty()){return;}int xstack.pop();if (xminStack.peek()){minStack.pop();}}public int top() {if (stack.empty()){return -1;}return stack.peek();}public int getMin() {if (minStack.empty()){return -1;}return minStack.peek();}
}