题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的 min 函数。
解题思路
-
stack 栈用来存储数据;
-
min 栈用来存储当前的最小值:
-
如果新 push 的值小于等于 min 栈顶的值,则 min 也 push,否则 min 不处理;
-
如果 pop 的值小于等于 min 栈顶的值,则 min 也 pop,否则 min 不处理。
-
import java.util.Stack;
public class Solution {
Stack<Integer> min = new Stack<>();
Stack<Integer> stack = new Stack<>();
public void push(int node) {
stack.push(node);
if (min.isEmpty() || min.peek() > node)
min.push(node);
}
public void pop() {
if (stack.pop() <= min.peek())
min.pop();
}
public int top() {
return stack.peek();
}
public int min() {
return min.peek();
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于