|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 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.
复制代码
- class MinStack {
- static int min = 2147483647;
- static int top = 0;
- static int[] array;
-
- public MinStack() {
-
- min = 2147483647;
- top =0;
- array = new int[10000];
-
- }
-
- public void push(int x) {
-
- if(x < min) min = x;
- array[top++] = x;
-
- }
-
- public void pop() {
-
- if(top() == min) getNewMin();
-
- top--;
-
- }
-
- public int top() {
-
- return array[top-1];
-
- }
-
- public int getMin() {
-
- return min;
-
- }
-
- public void getNewMin(){
-
- min = 2147483647;
-
- for(int i = 0; i< top-1; i++){
-
- if(array[i] < min) min = array[i];
- }
- }
- }
- /**
- * 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.getMin();
- */
复制代码 |
|