题目描述:
面试题 03.02. 栈的最小值 - 力扣(LeetCode) (leetcode-cn.com)
Java代码:
class MinStack {
class Node{
int val,min;
Node(int val,int min){
this.val=val;
this.min=min;
}
}
Node[] nodes;
int cnt;//default 0
public MinStack() {
nodes=new Node[10000];
nodes[cnt++]=new Node(Integer.MAX_VALUE,Integer.MAX_VALUE);
}
public void push(int x) {
nodes[cnt]=new Node(x,Math.min(nodes[cnt-1].min,x));
cnt++;
}
public void pop() {
cnt--;
}
public int top() {
return nodes[cnt-1].val;
}
public int getMin() {
return nodes[cnt-1].min;
}
}
Java代码二:
class MinStack {
class Node{
int val,min;
Node(int val,int min){
this.val=val;
this.min=min;
}
}
Node[] nodes;
int cnt;//default 0
public MinStack() {
nodes=new Node[10000];
nodes[0]=new Node(Integer.MAX_VALUE,Integer.MAX_VALUE);
}
public void push(int x) {
nodes[++cnt]=new Node(x,Math.min(nodes[cnt-1].min,x));
}
public void pop() {
cnt--;
}
public int top() {
return nodes[cnt].val;
}
public int getMin() {
return nodes[cnt].min;
}
}
?
Java代码三:
class MinStack {
int[] vals,mins;
int cnt;//default 0
public MinStack() {
vals=new int[10000];
mins=new int[10000];
mins[0]=Integer.MAX_VALUE;
}
public void push(int x) {
vals[++cnt]=x;
mins[cnt]=Math.min(mins[cnt-1],x);
}
public void pop() {
cnt--;
}
public int top() {
return vals[cnt];
}
public int getMin() {
return mins[cnt];
}
}
|