Leetcode 包含min函式的棧

2021-10-04 01:56:35 字數 969 閱讀 7268

定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min、push 及 pop 的時間複雜度都是 o(1)。

示例:minstack minstack = new minstack();

minstack.push(-2);

minstack.push(0);

minstack.push(-3);

minstack.min();   --> 返回 -3.

minstack.pop();

minstack.top();      --> 返回 0.

minstack.min();   --> 返回 -2.

各函式的呼叫總次數不超過 20000 次

來自:leetcode題解

leetcode題解上的乙個思路很不錯,比我用vector來實現精簡很多。

思路大概就是,先初始化最小值為int型的最大值;

如果push的值比最小值小,則先將之前的最小值儲存在當前最小值之前;

如果pop掉的是當前的最小值,則去除之前的最小值,也即棧中的前乙個數

class minstack 

void push(int x)

st.push(x);

}void pop()

}int top()

int min()

};/**

* your minstack object will be instantiated and called as such:

* minstack* obj = new minstack();

* obj->push(x);

* obj->pop();

* int param_3 = obj->top();

* int param_4 = obj->min();

*/

Leetcode 包含min函式的棧

leetcode 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 方法一 輔助棧同步 可以多開乙個棧,來儲存最小值,每次新資料進棧時,和之前的最小值進行比較,如果小於,則壓入棧,否則,壓入之前的最小值。...

LeetCode 棧 包含min函式的棧

定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 示例 minstack minstack new minstack minstack.push 2 minstack.push 0 minstack.pu...

js 包含min函式的棧 包含min函式的棧

目標 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 設計思路 我們要做的是在我們每次資料入棧的時候,記錄當前資料棧中最小值,並且在pop 出棧之後依然能找到最小值 方案 如果只用乙個 min 變數來儲...