劍指Offer 021 支援min操作的棧

2021-07-11 07:12:34 字數 994 閱讀 1345

牛客oj:支援min操作的棧

九度oj:

github**: 021-包含min函式的棧

csdn題解:劍指offer–021-包含min函式的棧

牛客oj

九度oj

csdn題解

github**

支援min操作的棧

1522-包含min函式的棧

劍指offer–021-包含min函式的棧

021-包含min函式的棧

您也可以選擇回到目錄-劍指offer–題集目錄索引

題目描述

定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。

思路很簡單,我們維持兩個棧,

在push-data棧的時候,將當前最小資料壓入,

在pop-data棧的時候,將min棧棧頂的最小資料彈出

這樣保證min棧中儲存著當前現場的最小值,並隨著資料棧的更新而更新

class solution

// int min_data = min(value, this->m_min.top( ));

// this->m_min.push(min_data);

if(this->m_min.size( ) == 0 || value < this->m_min.top( ))

else

}void pop()

int top()

int min()

return

this->m_min.top( );

}protected:

stack

m_data; // 資料棧

stack

m_min; // 儲存每次棧中最小值的棧資訊

};

劍指offer 包含min 的棧

分析 關於棧的push pop top 方法都是和普通棧一樣,就是得到棧中最小元素min 方法不一樣。假如我們對每次push進棧的元素進行排序,使得最小的元素位於棧頂,那麼就可以在o 1 時間複雜度內實現min 方法。但單純這樣子不能保證pop,top等方法是按照棧的先入後出的規定。換言之,此時則不...

劍指offer 包含min的棧

思路 該題主要是補充棧的min方法,例如 棧有pop push peek等內建方法,每次呼叫這些方法就能返回個結果或者有個響應,本題意在補充min方法,使得每次呼叫min方法都能得到棧中最小值,保證每次執行過min 函式後棧中元素不變。push 6 min 返回6 push 7 min 返回6,pu...

劍指offer 包含min函式的棧

一 問題描述 二 思路 兩個棧,乙個當前棧data,乙個輔助棧m min,輔助棧用來儲存當前的最小值,如果出棧,輔助棧也出棧,棧頂元素始終是當前的最小值。在入棧時,如果輔助棧為空或者當前值小於輔助棧棧頂元素,則將當前值加入輔助棧 否則將輔助棧的棧頂元素加入輔助棧,表明此次有大於min棧頂數字入棧。以...