question:
實現乙個特殊的棧,在實現棧的基本功能的基礎上,在實現回棧中最小元素的操作
thinking:
sketch:
定義倆個棧。同時壓入同時彈出,比如說乙個data,乙個min,當data棧新壓入的數大於min的棧頂,重複壓入min棧頂數
detailed:
分別定義data,min倆個棧,
push
函式中,判斷
min棧是否為空,傳入的數是否比
min棧頂元素小,如果小壓入傳入數值,如果傳入的數大於
min棧頂元素,將傳入的數壓入
data
棧, getmin函式中判斷min棧是否空,返回min棧頂元素,既是當前data棧最小值。
pop函式總判斷data棧是否為空,當data棧出棧的
元素等於getmin函式,即min棧頂元素。
具體實現如下:
#include#includeusing namespace std;
class stackmini
void push(int digital)
int getmin()
int pop()
};
同時找最大最小值
題目定義 給定乙個大小為n的陣列,無序,找到其中的最大值和最小值,要求元素間的比較次數盡可能少。這道題出自 演算法導論 創新工場2016校招筆試也考了這道題。以下摘自 演算法導論 事實上,我們只需要最多3 n 2 次比較就可以同時找到最小值和最大值。具體的方法是記錄已知的最大值和最小值,然後對輸入元...
題解 洛谷 找最小值
週末三更最後一篇qwq 今天繼續無聊,枯燥無味的題解。今天的題目是一道可以偷懶的題目 其實主要是因為我懶 我的思路是先讀入n,在主函式裡宣告乙個有n個元素的一維陣列 資料很水 讀入,然後使用stl庫的sort排序函式給陣列排序,輸出下標0的元素就可以了qwq 環節 include 萬能標頭檔案qwq...
3 2 棧的最小值
ntm inim um int minimum intmin imum 其時間複雜度為o 1 o 1 o 1 該演算法的缺點是當棧中元素較多時浪費了較多空間。以下是實現 和測試 測試結果如圖1所示。實現 class nodewithmin nodewithmin operator nodewithm...