题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
思路:
2 -> 4 -> 1 -> 5 -> 3
放值的栈:
2 -> 4 -> 1 -> 5 -> 3
放最小值的栈:
2 -> 2 -> 1 -> 1 -> 1
import java.util.Stack;
public class Solution {
//有两个栈,一个放值,一个放最小值
Stack<Integer> putvalue = new Stack<>();
Stack<Integer> putminvalue = new Stack<>();
public void push(int node) {
putvalue.push(node);
if(node < putminvalue.peek()){
putminvalue.push(node);
}else{
putminvalue.push(putminvalue.peek());
}
}
public void pop() {
putvalue.pop();
putminvalue.pop();
}
public int top() {
return putvalue.peek();
}
public int min() {
return putminvalue.peek();
}
}
来源:CSDN
作者:fsdgfsf
链接:https://blog.csdn.net/fsdgfsf/article/details/103752827