《劍指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...