包含min函數的棧

題目描述

定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。

發現很多用java的代碼很多比c++短,喵~

實現幾個函數的功能

//新建一輔助棧,使得輔助棧從上到下存儲的應該是最小值->次小值->次次小值……
class Solution {
public:
    stack<int> dataStack, minStack;
    void push(int val) {
        //將元素壓入儲存數據的棧
        dataStack.push(val);
        //當儲存最小元素的棧沒有元素的時候,將當前元素壓入最小元素棧。否則,先比較大小,壓入較小的元素入最小元素棧。
        if (minStack.empty()) {
            minStack.push(val);
        }
        else{
            int min = minStack.top();
            val<=min?minStack.push(val):minStack.push(min);
        }
         
    }
    //pop的時候,數據棧輔助棧均彈出頂元素。
    void pop() {
        dataStack.pop();
        minStack.pop();
    }
    int top() {
        return  dataStack.top();
    }
    int min() {
        return minStack.top();
    }
};



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章