0
点赞
收藏
分享

微信扫一扫

【栈和队列2】 包含min函数的栈


题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

import java.util.Stack;

public class Solution {
Stack<Integer> dataStack=new Stack<>();
//辅助栈获取最小值的
Stack<Integer> assistantStack=new Stack<>();

public void push(int node) {
dataStack.push(node);
//辅助栈为空或者新加入的数小于辅助栈中最小的数,就加入该数
if(assistantStack.size()==0 ||node<assistantStack.peek()){
assistantStack.push(node);
}else{
assistantStack.push(assistantStack.peek());
}
}

public void pop() {
if(dataStack.size()>0 ||assistantStack.size()>0){
dataStack.pop();
assistantStack.pop();
}
}

public int top() {
if(assistantStack.size()>0){
return assistantStack.peek();
}
return -1;
}

public int min() {
if(assistantStack.size()>0){
return top();
}
return -1;
}
}



举报

相关推荐

0 条评论