首页 > 代码库 > 算法--可查询最值的栈练习题
算法--可查询最值的栈练习题
转载请标明出处http://www.cnblogs.com/haozhengfei/p/68c25fbc949e663f5bb8627a764158f8.html
可查询最值的栈练习题
可查询最值的栈练习
第2节 可查询最值的栈练习题
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
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
}
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例
答案正确:恭喜!您提交的程序通过了所有的测试用例
算法--可查询最值的栈练习题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。