leetcode-155:最小栈

简介: leetcode-155:最小栈

题目

题目连接

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

实现 MinStack 类:

  • MinStack() 初始化堆栈对象。
  • void push(int val) 将元素val推入堆栈。
  • void pop() 删除堆栈顶部的元素。
  • int top() 获取堆栈顶部的元素。
  • int getMin() 获取堆栈中的最小元素。

示例 1:

输入:
["MinStack","push","push","push","getMin","pop","top","getMin"]
[[],[-2],[0],[-3],[],[],[],[]]
输出:
[null,null,null,null,-3,null,0,-2]
解释:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.getMin();   --> 返回 -2.

解题

剑指 Offer 30:包含min函数的栈一样

方法一:辅助栈

class MinStack {
public:
    stack<int> st1;
    stack<int> st2;
    MinStack() {
    }
    void push(int val) {
        if(st1.empty()) st2.push(val);
        else st2.push(min(val,st2.top()));
        st1.push(val);
    }
    void pop() {
        st1.pop();
        st2.pop();
    }
    int top() {
        return st1.top();
    }
    int getMin() {
        return st2.top();
    }
};
相关文章
|
3月前
|
Python
【Leetcode刷题Python】155. 最小栈
LeetCode上题目“155. 最小栈”的Python解决方案,通过维护一个包含当前值和最小值的元组栈来实现在常数时间内获取栈中最小元素的功能。
17 2
|
6月前
|
Go
golang力扣leetcode 155.最小栈
golang力扣leetcode 155.最小栈
32 0
|
6月前
|
存储 算法 vr&ar
☆打卡算法☆LeetCode 155. 最小栈 算法解析
☆打卡算法☆LeetCode 155. 最小栈 算法解析
|
存储
【Leetcode】155. 最小栈、JZ31 栈的压入、弹出序列
155. 最小栈 155. 最小栈 题目描述; 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
42 0
|
存储 算法 Java
LeetCode刷题155-简单-最小栈
LeetCode刷题155-简单-最小栈
140 0
LeetCode刷题155-简单-最小栈
|
算法
LeetCode-155. 最小栈(day35)
LeetCode-155. 最小栈(day35)
107 0
|
存储 算法
leetcode算法155.最小栈
本文介绍如何设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
129 0
leetcode算法155.最小栈
|
算法 Java 虚拟化
LeetCode(算法)- 155. 最小栈
LeetCode(算法)- 155. 最小栈
111 0
|
算法 Python
<LeetCode天梯>Day042 最小栈 | 初级算法 | Python
<LeetCode天梯>Day042 最小栈 | 初级算法 | Python
<LeetCode天梯>Day042 最小栈 | 初级算法 | Python