https://leetcode-cn.com/problems/min-stack/
、ポップ、トップ操作をプッシュするように設計された支持体は、スタックが取得され、一定時間内の最小要素であることができます。
プッシュ(X) -要素xがスタックを押します。
ポップ() -スタックの要素を削除します。
トップ() -先頭の要素を取得します。
getMin() -スタック内の最小の要素を取り出します。
例:
分のありがとう分の感謝=新しい分おかげで();
minStack.push(-2)。
minStack.push(0)。
minStack.push(-3)。
minStack.getMin(); - >返回-3。
minStack.pop();
minStack.top(); - >返回0
minStack.getMin()。- >返回-2。
しようとする鶏料理:
私は非常に一定の時間ではないかを理解することができます(O(1)を推測?)だから、タイムアウトを保持する考え方は、最も一般的な方法を書くために開始します。
1 クラスMinStack { 2 公共: 3 / * *ここにあなたのデータ構造を初期化します。* / 4 <スタックのint > メイン。 5 スタック< int型 > B; 6 MinStack(){ 7 8 } 9 10 空隙プッシュ(INT X){ 11 main.push(X) 12 } 13 14 空隙ポップ(){ 15 main.pop()。 16 } 17 18 INTトップ(){ 19 リターンmain.top()。 20 } 21 22 int型getMin(){ 23 int型の結果= INT_MAX。 24 ながら(!main.empty()){ 25 であれば(main.top()<結果)結果= main.top()。 26 b.push(main.top())。 27 main.pop()。 28 } 29 ながら(!b.empty()){ 30 main.push(b.top())。 31 b.pop()。 32 } 33 リターン結果; 34 } 35 }。 36 37 / * * 38 *あなたMinStackオブジェクトがインスタンス化され、そのように呼ばれます: 39 * MinStack * OBJ =新しいMinStack()。 40 * obj->プッシュ(X) 41 * obj->ポップ(); 42 * INT param_3 = obj->トップ(); 43 * INT param_4 = obj-> getMin(); 44 * /
結果は、タイムアウトした、兄はそれを記述する方法を確認することです
礼拝のギャングコード:
時間のための補助スタックスペースを借ります!!
1 クラスMinStack { 2 公共: 3 / * *ここにあなたのデータ構造を初期化します。* / 4 <スタックのint > メイン。 5 スタック< int型 > B; 6 MinStack(){ 7 8 } 9 10 空隙プッシュ(INT X){ 11 main.push(X) 12 であれば(b.empty()|| b.top()> = X)b.push(X) 13 } 14 15 空隙ポップ(){ 16 、INTトップ= main.top()。 17 main.pop()。 18 であれば(トップ== b.top()){ 19 b.pop()。 20 } 21 } 22 23 int型の上部(){ 24 リターンmain.top()。 25 } 26 27 INT getMin(){ 28 リターンb.top()。 29 } 30 }。 31 32 / * * 33 あなたMinStackオブジェクトがインスタンス化され、そのように呼ばれます*: 34 * MinStack * OBJ =新しいMinStack(); 35 * obj->プッシュ(X) 36 * obj->ポップ(); 37 * INT param_3 = obj->トップ(); 38 * INT param_4 = obj-> getMin(); 39 * /
Bスタック効果は最小の要素が格納されています
要素は、B又はBのスタック最上位要素のスタックが空である、主積層体のデータはスタックもある間にスタックがBスタック(なぜそれより大きいより大きいと等しくない場合、例を参照して以下であることをスタックにプッシュされた場合:)
同様に、スタックの動作を、スタックの最上部にもBをポップしながらスタックは、単に要素bスタック最上位要素である場合。
出典:ボタン(LeetCode)に滞在
します。https://leetcode-cn.com/problems/min-stackリンクは
すべてのネットワークからの控除が著作権を保有。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。