LeetCode-155-最小棧

題目描述:設(shè)計(jì)一個(gè)支持 push ,pop ,top 操作,并能在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧。
pop() —— 刪除棧頂?shù)脑亍?/p>
top() —— 獲取棧頂元素。
getMin() —— 檢索棧中的最小元素。
示例說(shuō)明請(qǐng)見(jiàn)LeetCode官網(wǎng)。
來(lái)源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/min-stack/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
解法一:雙棧
利用2個(gè)棧,一個(gè)棧data存儲(chǔ)數(shù)據(jù),一個(gè)棧minVal存儲(chǔ)最小值,具體方法邏輯:
:將val值放到data的棧頂,判斷val值是否小于等于minVal的棧頂元素,如果是,則將val值也放到minVal的棧頂;
:將data的棧頂元素取出,判斷如果取出的元素等于minVal的棧頂元素,則將minVal的棧頂元素也取出;
:查看data的棧頂元素;
:查看minVal的棧頂元素。
【每日寄語(yǔ)】 不去追逐,永遠(yuǎn)不會(huì)擁有。不往前走,永遠(yuǎn)原地停留。知道自己目的地的人,才是旅行得最遠(yuǎn)的人。
標(biāo)簽: