题目
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路
可以通过数组来实现栈的数据结构。然后需要保存最小值,同样可以使用一个数据进行存储。
代码
import java.util.Stack;
import java.util.ArrayList;
public class Solution {
private ArrayList<Integer> dataList = new ArrayList<>();
private ArrayList<Integer> minList = new ArrayList<>();
private Integer min = Integer.MAX_VALUE;
public void push(int node) {
dataList.add(node);
if (node <= min) {
min = node;
}
minList.add(min);
}
public int getSize() {
return dataList.size();
}
public void pop() {
int end = getSize() - 1;
dataList.remove(end);
minList.remove(end);
min = minList.get(getSize() - 1);
}
public int top() {
return dataList.get(getSize() - 1);
}
public int min() {
return min;
}
}