【スイフト] LeetCode1171。餐盘栈| ディナープレートスタック

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
]➤[マイクロチャネルパブリック番号(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
  • ほとんどが持っている  pushpopと  popAtStack 行って  200000 呼び出しを。

おすすめ

転載: www.cnblogs.com/strengthen/p/11407524.html