【Leetcode】155. 最小栈、JZ31 栈的压入、弹出序列

简介: 155. 最小栈 155. 最小栈题目描述;设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

作者:小卢

专栏:《Leetcode》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》


155. 最小栈

155. 最小栈

题目描述;

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

实现 MinStack 类:

MinStack() 初始化堆栈对象。

void push(int val) 将元素val推入堆栈。

void pop() 删除堆栈顶部的元素。

int top() 获取堆栈顶部的元素。

int getMin() 获取堆栈中的最小元素。

 

示例:

思路:

利用俩个栈,一个用了正常存储,一个用了存储最小值,遍历正常的栈,如果_st的top小于等于_minst的top,就将这个栈压进去,出栈的话也是类似

代码:

class MinStack {
public:
    MinStack() {
    }
    void push(int val) {
        _st.push(val);
        if(_minst.empty()||val<=_minst.top())
        {
            _minst.push(val);
        }
    }
    void pop() {
        if(_minst.top()==_st.top())
        {
            _minst.pop();
        }
            _st.pop();
    }
    int top() {
return _st.top();
    }
    int getMin() {
return _minst.top();
    }
    private:
    stack<int>_st;
    stack<int>_minst;
};

JZ31 栈的压入、弹出序列

栈的压入、弹出序列_牛客题霸_牛客网

题目描述:

示例:

代码:

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        stack<int>st;
        int pushi=0;
        int popi=0;
        while(pushi<pushV.size())
        {
            st.push(pushV[pushi++]);
            while(!st.empty()&&st.top()==popV[popi])
            {
                st.pop();
                popi++;
            } 
        }
        return popi==popV.size();
    }
};


相关文章
|
1月前
|
存储 算法
《LeetCode》—— 摆动序列
《LeetCode》—— 摆动序列
LeetCode 热题100——单调栈
LeetCode 热题100——单调栈
19 0
|
1月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
34 6
|
3月前
【Leetcode 2487】从链表中移除节点 —— 单调栈
解题思路:维持一个单调递增栈,当栈为空时,记录当前节点为头节点;否则当前节点为栈顶节点的后继节点
|
3月前
【Leetcode 1944】队列中可以看到的人数 —— 单调栈
解题思路:维持一个单调递增栈来辅助计算每个人能够看到的人数。从右往左遍历数组,对于每个人,我们将其身高与栈顶元素的身高进行比较。如果当前人的身高比栈顶元素的身高高,则栈顶元素无法被当前人看到,将其出栈,并累计计数
|
3月前
|
存储
leetcode:232. 用栈实现队列
leetcode:232. 用栈实现队列
19 0
LeetCode | 232. 用栈实现队列
LeetCode | 232. 用栈实现队列
|
1月前
|
存储
力扣187 重复DNA序列
力扣187 重复DNA序列
|
1月前
|
算法 安全 Java
【数据结构与算法】6、栈(Stack)的实现、LeetCode:有效的括号
【数据结构与算法】6、栈(Stack)的实现、LeetCode:有效的括号
21 0
|
3月前
|
容器
代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I
代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I
32 0