zoukankan      html  css  js  c++  java
  • Leetcode#155 Min Stack

    原题地址

    非常经典的题目了。双栈法,一个普通栈,一个最小值栈

    入栈时:除了入普通栈之外,如果当前待入栈元素小于等于最小值栈顶元素,那么同时入最小值栈

    出栈时:除了出普通栈之外,如果当前待出栈元素小于等于最小值栈顶元素,那么同时出最小值栈

    查看栈顶元素:返回普通栈顶元素

    查看最小元素:返回最小值栈顶元素

    代码:

     1 stack<int> st;
     2 stack<int> minSt;
     3 
     4 void push(int x) {
     5   st.push(x);
     6   if (minSt.empty() || x <= minSt.top())
     7     minSt.push(x);
     8 }
     9 
    10 void pop() {
    11   if (st.empty()) return;
    12   if (st.top() == minSt.top())
    13     minSt.pop();
    14   st.pop();
    15 }
    16 
    17 int top() {
    18   if (st.empty()) return -1;
    19   else return st.top();
    20 }
    21 
    22 int getMin() {
    23   if (st.empty()) return -1;
    24   else return minSt.top();
    25 }
  • 相关阅读:
    java入门了解14
    java入门了解13
    java入门了解12
    java入门了解11
    Hive-安装
    Hive-基本概念
    Java笔记20
    Java-笔记19
    Java-笔记18-复习
    Java-笔记18
  • 原文地址:https://www.cnblogs.com/boring09/p/4250444.html
Copyright © 2011-2022 走看看