本文共 1132 字,大约阅读时间需要 3 分钟。
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
示例:
MinStack minStack = new MinStack();
minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.min(); --> 返回 -2.来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/bao-han-minhan-shu-de-zhan-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class MinStack { /** initialize your data structure here. */ Stacks = new Stack<>();Stack min = new Stack<>(); public MinStack() { } public void push(int x) { s.push(x); if(min.isEmpty()||min.peek()>=x) { min.push(x); }else{ min.push(min.peek()); } } public void pop() { s.pop(); min.pop(); } public int top() { return s.peek(); } public int min() { return min.peek(); }}/** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(x); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.min(); */