- 1
- 2
- 3
- 4
- 5
Java实现栈的最小值函数
资料介绍
在栈的基本操作中,获取栈的最小值是一个常见需求。以下介绍两种高效实现方式:
方法一:双栈法(推荐)
使用两个栈:主栈存储所有元素,辅助栈存储当前最小值。
import java.util.Stack;
public class MinStack {
private Stack<Integer> mainStack; // 存储所有元素
private Stack<Integer> minStack; // 存储当前最小值
public MinStack() {
mainStack = new Stack<>();
minStack = new Stack<>();
}
// 入栈操作
public void push(int val) {
mainStack.push(val);
// 辅助栈为空或当前值小于等于栈顶值时入栈
if (minStack.isEmpty() || val <= minStack.peek()) {
minStack.push(val);
}
}
// 出栈操作
public void pop() {
if (mainStack.isEmpty()) {
throw new RuntimeException("Stack is empty");
}
int val = mainStack.pop();
// 如果出栈元素是当前最小值,辅助栈也出栈
if (val == minStack.peek()) {
minStack.pop();
部分文件列表
| 文件名 | 大小 |
| Java实现栈的最小值函数.docx | 14K |
最新上传
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏15.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:小猫做电路
-
21ic下载 打赏360.00元 3天前
用户:mulanhk
-
21ic下载 打赏230.00元 3天前
用户:江岚
-
21ic下载 打赏230.00元 3天前
用户:潇潇江南
-
21ic下载 打赏210.00元 3天前
用户:zhengdai
-
21ic下载 打赏160.00元 3天前
用户:lanmukk
-
21ic下载 打赏130.00元 3天前
用户:jh03551
-
21ic下载 打赏110.00元 3天前
用户:liqiang9090
-
21ic下载 打赏110.00元 3天前
用户:jh0355
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic下载 打赏20.00元 3天前
用户:w178191520
-
21ic下载 打赏30.00元 3天前
用户:sun2152
-
21ic下载 打赏30.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w993263495
-
21ic下载 打赏15.00元 3天前
用户:kk1957135547
-
21ic下载 打赏15.00元 3天前
用户:eaglexiong
-
21ic下载 打赏15.00元 3天前
用户:w1966891335
-
21ic下载 打赏25.00元 3天前
用户:烟雨




全部评论(0)