首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >包含 min 函数的栈

包含 min 函数的栈

作者头像
MickyInvQ
发布于 2021-12-07 13:28:56
发布于 2021-12-07 13:28:56
1.2K0
举报
文章被收录于专栏:InvQ的专栏InvQ的专栏

题目描述

实现一个包含 min() 函数的栈,该方法返回当前栈中最小的值。

解题思路

使用一个额外的 minStack,栈顶元素为当前栈中最小的值。在对栈进行 push 入栈和 pop 出栈操作时,同样需要对 minStack 进行入栈出栈操作,从而使 minStack 栈顶元素一直为当前栈中最小的值。在进行 push 操作时,需要比较入栈元素和当前栈中最小值,将值较小的元素 push 到 minStack 中。

代码语言:javascript
复制
private Stack<Integer> dataStack = new Stack<>();
private Stack<Integer> minStack = new Stack<>();

public void push(int node) {
    dataStack.push(node);
    minStack.push(minStack.isEmpty() ? node : Math.min(minStack.peek(), node));
}

public void pop() {
    dataStack.pop();
    minStack.pop();
}

public int top() {
    return dataStack.peek();
}

public int min() {
    return minStack.peek();
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 题目描述
  • 解题思路
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档