GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — leetcode/algorithms/java/src/minStack/MinStack.java at master · haoel/leetcode Expand file tree/ Copy pathMinStack.javaMore file actions 60 lines (54 loc) · 1.62 KB / Copy pathMinStack.javaFile metadata and controls60 lines (54 loc) · 1.62 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 // Source : https://leetcode.com/problems/min-stack/description/ // Author : Tianming Cao // Date : 2018-02-02 /********************************************************************************** * 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. * Example: * MinStack minStack = new MinStack(); * minStack.push(-2); * minStack.push(0); * minStack.push(-3); * minStack.getMin(); --> Returns -3. * minStack.pop(); * minStack.top(); --> Returns 0. * minStack.getMin(); --> Returns -2. * **********************************************************************************/ package minStack; import java.util.Stack; public class MinStack { public Stack<Integer> mainStack; /** * Call an extra stack named assistStack to store the min value. * While we doing push operation, compare x with the top of assistStack and push the smaller value into assistStack. * The other operations pop,top and getMin is very simple. **/ public Stack<Integer> assistStack; public MinStack() { mainStack = new Stack<Integer>(); assistStack = new Stack<Integer>(); } public void push(int x) { mainStack.push(x); if (assistStack.isEmpty()) { assistStack.push(x); } else { assistStack.push(Math.min(x, getMin())); } } public void pop() { mainStack.pop(); assistStack.pop(); } public int top() { return mainStack.peek(); } public int getMin() { return assistStack.peek(); } } |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |