C C 練習題 棧中新增min方法

2021-09-26 02:52:58 字數 977 閱讀 3944

《劍指offer》面試題30:包含min函式的棧

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

構造乙個輔助棧,保證輔助棧空間的棧頂元素始終是資料棧中的最小元素。那麼當程式對棧進行壓棧or彈棧操作時,對應的輔助棧也要進行操作。

#include #include #include //問題.實現乙個包含min函式的棧

using namespace std;

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::stackm_data; // 資料棧,存放棧的所有元素

std::stackm_min; // 輔助棧,存放棧的最小元素

};template void stackwithmin::push(const t& value) //實現push方法

template void stackwithmin::pop() //實現pop方法

template const t& stackwithmin::min() const //實現min方法

C C 練習題 剪繩子

劍指offer 面試題14 剪繩子 給你一根長度為n繩子,請把繩子剪成m段 m n都是整數,n 1並且m 1 每段的繩子的長度記為k 0 k 1 k m k 0 k 1 k m 可能的最大乘積是多少?例如當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到最大的乘積18。動態規劃 適...

C C 練習題目總結

題目 從鍵盤輸入一行或幾行字串,行數由鍵盤輸入,一行字串用字元陣列儲存。字串中只有英文數字和字元 void calculate char s ascii碼一共128個,全部算入 while s 0 題目 有10個小朋友圍成一圈分糖果,老師順次分給每人一定數量糖果 初始值為偶數 然後按照下列規則調整,...

LeetCode 棧的練習題

如果是這種左右括號成對出現的就是有效的,返回true,不是就返回false.思路 利用乙個棧,左括號先入棧,然後如果有友括號入棧,就同時出棧,這樣一直遍歷整個字串,最後判斷棧是否為空就行了。public static boolean valid string str else char cstack...