//面試題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,醜數...