★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
]➤[マイクロチャネルパブリック番号(WeiGanTechnologies)をあえてします
➤ブログパークアドレス:サンチンウィングチー(https://www.cnblogs.com/strengthen/)
➤GitHubアドレス:https://github.com/strengthen/LeetCode
元のアドレス➤:HTTPS://www.cnblogs。 COM /強化/ P / 11407524.html
アドレスがリンクブログパーク龍シャンカイはない場合➤、それは記事の著者をクロールすることができます。
➤テキストは、更新を変更されました!元のアドレスが読むことを強く推奨クリック!サポート作者!オリジナルをサポートしています!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
あなたが一列に配置され、番号スタックの無限数がスタックの各々は、同じ最大値を有する、0から(左から右へ)を有します capacity
。
実装 DinnerPlates
クラスを:
DinnerPlates(int capacity)
最大でオブジェクトを初期化capacity
スタックの。void push(int val)
任意の正の整数をプッシュval
未満の大きさの左端スタックにcapacity
。int pop()
右端の非空のスタックの一番上にある値を返し、そのスタックからそれを削除し、返します-1
すべてのスタックが空の場合。int popAtStack(int index)
所与とスタックの最上部に値を返しindex
、そのスタックから削除し、-1を返し、所与のものとスタックがあればindex
空です。
例:
入力: [ "DinnerPlates"、 "プッシュ"、 "プッシュ"、 "プッシュ"、 "プッシュ"、 "プッシュ"、 "popAtStack"、 "プッシュ"、 "プッシュ"、 "popAtStack"、 "popAtStack"、 "ポップ" 、 "ポップ"、 "ポップ"、 "ポップ"、 "ポップ"] [2]、[1]、[2]、[3]、[4]、[5]、[0]、[20]、 [21]、[0]、[2]、[]、[]、[]、[]、[]] 出力 :[NULL、NULL、NULL、NULL、NULL、NULL、2、NULL、NULL、20、 21,5,4,3,1、-1] 説明: DinnerPlatesのD = DinnerPlates(2)。//容量と初期化= 2 D.push(1)。 D.push(2)。 D.push(3)。 D.push(4)。 D.push(5)。//スタックは次のようになります。 2 4 1 3 5 ﹈﹈﹈ D.popAtStack(0)。スタック2. //戻り値は次のようになります。4 1 3 5 ﹈﹈﹈ D.push(20)。//スタックは今である:20 4 1 3 5 ﹈﹈﹈ D.push(21)。//スタックは今である:20 4 21 1 3 5 ﹈﹈﹈ D.popAtStack(0)。//戻り20.スタックは今である:4 21 1 3 5 ﹈﹈﹈ D.popAtStack(2)。//戻り値21.スタックは次のようになります。4 1 3 5 ﹈﹈﹈ スタックは今5を返す// D.pop():4 1 3 ﹈﹈ 4を返し// D.pop()スタックが今である:1 3 ﹈﹈ D.pop() 1:// 3.スタックが今ある返し ﹈ 1.何のスタックはありませんを返します// D.pop()。 D.pop()//は-1を返します。何のスタックはまだありません。
制約:
1 <= capacity <= 20000
1 <= val <= 20000
0 <= index <= 100000
- せいぜい
200000
呼び出しに行われるpush
、pop
とpopAtStack
。
我々は、左から0から番号が付け右の順に、行のスタックの数に制限を∞しました。各スタックの最大容量は capacity
同じです。
「料理」カテゴリと呼ばれる場所を達成します DinnerPlates
:
DinnerPlates(int capacity)
-最大容量は、スタックを所与capacity
。void push(int val)
-正の整数を説明するval
左から右第一のスタックにプッシュ満杯ではありません。int pop()
-最初の空でないスタックの値の上に残され、スタックからそれを削除する権利からのリターン、すべてのスタックが空の場合は、ご返送ください-1
。int popAtStack(int index)
-数値を返しますindex
スタックのトップの値を、スタックから削除し、数ならばindex
、スタックのが空である、戻って-1
。
例:
// 2を返します。 スタック状態は:. 4 1 3 5。 ﹈﹈﹈ D.push(20); //スタックステータスは:. 4〜20である 1 3 135 ﹈﹈﹈ D.push(21); //スタックの状態:21の4 20 135 ﹈﹈﹈ D.popAtStack(0); // 20を返します。状況スタック:21 4 1 3 5。 ﹈﹈﹈ D.popAtStack(2); // 21を返します。ステータススタックがある:4 1 3 5 ﹈﹈﹈ 5を返す// D.pop()。ステータス・スタックは、次のとおりです。4 ﹈﹈ 4を返す// D.pop()。ステータススタックは次のとおりです。13 ﹈﹈ 3を返します// D.pop()。ステータススタック:1 ﹈ 1を返す// D.pop()。今積み重ねないでください。 D.pop()//は-1を返します。まだ、積み重ねないでください。
ヒント:
1 <= capacity <= 20000
1 <= val <= 20000
0 <= index <= 100000
- ほとんどが持っている
push
、pop
とpopAtStack
行って200000
呼び出しを。