首页 > 代码库 > Leetcode-Min Stack
Leetcode-Min Stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- getMin() -- Retrieve the minimum element in the stack.
Solution:
1 class MinStack { 2 Stack<Integer> stack; 3 int curMin; 4 Stack<Integer> minStack; 5 6 7 public MinStack(){ 8 stack = new Stack<Integer>(); 9 curMin = Integer.MAX_VALUE;10 minStack = new Stack<Integer>();11 }12 13 14 public void push(int x) {15 stack.push(x);16 if (x<=curMin){17 minStack.push(x);18 curMin = x;19 }20 }21 22 public void pop() {23 int val = stack.peek();24 stack.pop();25 if (val==curMin){26 minStack.pop();27 if (!minStack.isEmpty())28 curMin = minStack.peek();29 else curMin = Integer.MAX_VALUE;30 31 }32 }33 34 public int top() {35 return stack.peek();36 37 }38 39 public int getMin() {40 return curMin; 41 }42 }
Leetcode-Min Stack
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。