設計getMin功能的棧

2021-09-26 21:17:15 字數 825 閱讀 9043

題目描述

實現乙個特殊功能的棧,在實現棧的基本功能的基礎上,再實現返回棧中最小元素的操作。

輸入描述:

第一行輸入乙個整數n,表示對棧進行的操作總數。

下面n行每行輸入乙個字串s,表示操作的種類。

如果s為"push",則後面還有乙個整數x表示向棧裡壓入整數x。

如果s為"pop",則表示彈出棧頂操作。

如果s為"getmin",則表示詢問當前棧中的最小元素是多少。

輸出描述:

對於每個getmin操作,輸出一行表示當前棧中的最小元素是多少。

備註:1<=n<=1000000

-1000000<=x<=1000000

資料保證沒有不合法的操作

示例1輸入

6push 3

push 2

push 1

getmin

popgetmin輸出1

2思路:

維護兩個棧s,mins,時刻保持s和mins的size相同,s記錄原始輸入資料,mins.back()表示當前相同size的s的最小值

push的時候若num小於mins.back(),則push num到mins,否則將mins.back()再push一遍

pop的時候兩個棧同時彈出即可

#include #include #include using namespace std;

class sstack

if(cmd=="pop") ans.pop();

if(cmd=="getmin") cout<}

return 0;

}

棧與佇列1 設計getMin功能的棧

設計棧,實現基本功能的前提下,實現返回棧內最小元素的功能 1.push,pop,getmin 複雜度為o 1 2.允許使用現成棧結構 使用兩個棧,stackdata和stackmin,stackmin負責存最小值 共同點 都用stackmin儲存stackdata的最小值,時間複雜度均為o 1 空間...

實現GetMin功能的棧

題目 實現乙個特殊的棧,在實現棧的基本功能的基礎上,再實現返回棧中最小元素的棧。要求 1 pop push getmin操作的時間複雜度都為o 1 2 設計的站型別可以使用現成的棧結構 棧的一些基本定義模板 標頭檔案 include 模板 型別名 template struct specstack ...

設計乙個具有getMin 功能的棧

設計乙個具有getmin 功能的棧 1.push pop getmin 時間複雜度為o 1 2.設計棧時可以使用現有的棧結構 設計乙個具有getmin 功能的棧 1.pop,push,getmin 時間複雜度為o 1 2.設計的棧可以使用現有的棧結構 author nemo public class...