转载请标明出处http://www.cnblogs.com/haozhengfei/p/68c25fbc949e663f5bb8627a764158f8.html
可查询最值的栈练习题
可查询最值的栈练习
第2节 可查询最值的栈练习题
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
Java (javac 1.7)
代码自动补全
1
import java.util.Stack;
2
3
public class Solution {
4
private Stack<Integer> stackData = new Stack<>();
5
private Stack<Integer> stackMin = new Stack<>();
6
7
public void push(int node) {
8
//将当前元素压入栈
9
stackData.push(node);
10
11
/**
12
* 如果最小栈为空,那么直接压入
13
* 否则如果当前元素小于stackMin的顶部元素,直接压入,大于就继续压入stackMin的顶部元素
14
*/
15
if(stackMin.isEmpty()){
16
stackMin.push(node);
17
} else {
18
if (node < stackMin.peek().intValue()) {
19
stackMin.push(node);
20
}
21
else{
22
stackMin.push(stackMin.peek());
23
}
24
}
25
}
26
27
public void pop() {
28
stackData.pop();
29
stackMin.pop();
30
}
31
32
public int top() {
33
return stackData.peek();
34
35
}
36
37
public int min() {
38
return stackMin.peek();
39
}
40
}
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例
运行
时间: 2024-11-08 04:57:30