classMinStack(object):def__init__(self):# do some intialize if necessary
self.stack = []
defpush(self, number):# write yout code hereif len(self.stack) == 0:
self.stack.append([number, number])
else:
self.stack.append([number, min(number, self.stack[-1][1])])
defpop(self):# pop and return the top item in stackreturn self.stack.pop()[0]
defmin(self):# return the minimum number in stackreturn self.stack[-1][1]
Java
publicclass MinStack {
private Stack<ArrayList<Integer>> stack;
publicMinStack() {
// do initialize if necessary
stack = new Stack<ArrayList<Integer>>();
}
publicvoidpush(int number) {
// write your code hereif(stack.empty()){
ArrayList<Integer> L = new ArrayList(Arrays.asList(number, number));
stack.push(L);
}
else{
ArrayList<Integer> tmp = stack.peek();
if(tmp.get(1) < number){
ArrayList<Integer> L = new ArrayList(Arrays.asList(number, tmp.get(1)));
stack.push(L);
}
else{
ArrayList<Integer> L = new ArrayList(Arrays.asList(number, number));
stack.push(L);
}
}
}
publicintpop() {
// write your code here
ArrayList<Integer> L = stack.pop();
int ans = L.get(0);
return ans;
}
publicintmin() {
// write your code here
ArrayList<Integer> L = stack.peek();
int ans = L.get(1);
return ans;
}
}