《劍指offer》第三十題(包含min函式的棧)

2022-09-07 23:06:26 字數 1447 閱讀 6883

//

面試題30:包含min函式的棧

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

//函式。在該棧中,呼叫min、push及pop的時間複雜度都是o(1)。

#include

#include

#include

////////////////////////

//定義乙個模板類

///////////////////////////

template class

stackwithmin

virtual ~stackwithmin() {}//

虛析構函式

//t& top();

const t& top() const

;

void push(const t&value);

void

pop();

const t& min() const

;

bool empty() const

; size_t size()

const

;private

: std::stack

m_data; //

資料棧,存放棧的所有元素

std::stackm_min; //

輔助棧,存放棧的最小元素

};template

void stackwithmin::push(const t& value)//

模板類的建構函式,好好看看這一行怎麼寫的

template

void stackwithmin::pop()//

刪除頂節點

template

const t& stackwithmin::min() const

//返回輔助棧的頂點

//template t& stackwithmin::top()

//template

const t& stackwithmin::top() const

//返回資料棧的頂點

template

bool stackwithmin::empty() const

//檢測資料棧空否

template

size_t stackwithmin::size() const

//返回資料棧size

////////////////////////

//測試**

///////////////////////////

void test(const

char* testname, const stackwithmin& stack, int

expected)

int main(int argc, char*ar**)

LeetCode第三十題 Python實現

title leetcode no.30 categories tags 給定乙個字串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的...

Leetcode第三十題 串聯所有單詞的子串

題目 給定乙個字串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。示例 1 輸入 s barfoothefoobarman wo...

牛客劍指offer第三十三題(醜數)

把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。定義遞迴函式,該遞迴函式用於求解當前數是否是醜數。採用迭代將每個數傳入遞迴函式判斷是否是醜數,若是醜數,返回true,醜數...