實現乙個最小棧,有三種操作,要求:語言不限min:得到棧中的最小值
push:在棧頂插入乙個元素
pop:彈出棧頂元素,
使這三種操作的時間複雜度都是o(1)
輸入描述:
第一行是乙個數q,接下來q行每行表示乙個操作,每行首先是操作op輸出描述:若op==0,則輸出當前棧中的最小值;
若op==1,表示push,接著正整數x,把在x放進棧頂;
若op==2,表示pop,彈出棧頂元素
保證q<=500000,保證op==0或2時(即min操作和pop操作時)棧不為空。
你可以假設一開始棧的空的。
對應每個op== 0或2 ,示例1如果是op == 0輸出當前棧中的最小值,
如果是op==2輸出彈出的元素。
輸入
7輸出1 31 4
01 202
0
322說明3
第乙個操作為push 3,此時棧元素為3重要的是理解!!!第二個操作為push 4,此時棧元素為3,4
第三個操作為min,此時棧元素為3,4,輸出最小值3
第四個操作為push 2,此時棧元素為3,4,2
第五個操作為min,此時棧元素為3,4,2,輸出最小值2
第六個操作為pop,彈出元素2,此時棧元素為3,4,輸出彈出的元素2
第七個操作為min,此時棧元素為3,4,輸出最小值3
#include#includeusing namespace std;
int main()
else if (op == 1)
}else if (op == 2)
s1.pop();
} }return 0;
}
最小棧 Momenta2019秋招技術崗筆試題
實現乙個最小棧,有三種操作,min 得到棧中的最小值,push 在棧頂插入乙個元素,pop 彈出棧頂元素,使這三種操作的時間複雜度都是o 1 要求 語言不限 第一行是乙個數q,接下來q行每行表示乙個操作,每行首先是操作op 若op 0,則輸出當前棧中的最小值 若op 1,表示push,接著正整數x,...
棧相關筆試題
解題 如下 function smartrepeat templatestr elseif w test rest else if rest 0 console.log index,stack1,stack2 while 結束之後,stack1 和 stack2 中肯定還剩餘 1 項。返回棧2中剩下...
筆試題 最小的K個數
題目 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,思考,採用最簡單的選擇排序的方法,逐步求出第 i 小的值 0 i k 也不要忘了對一些特殊情況的判斷。class solution for int i 0 i k i int...