【LeetCode] 900 RLEイテレータRLEイテレータ



ランレングス符号化列を反復処理するイテレータを書きます。

反復子は、により初期化される  RLEIterator(int[] A)場合、  A いくつかの配列のランレングス符号化です。具体的には、すべてのためにも  i、  A[i] 非負の整数値があること私たちの回数を伝える  A[i+1] 順番に繰り返されます。

反復子はつの機能をサポートしています  next(int n)、次排気れる  n (要素n >= 1)を、このように排出される最後の要素を返します。排出するために、左要素がない場合は、  next 返す  -1代わりに。

例えば、我々はで始まる  A = [3,8,0,9,2,5]シーケンスのランレングス符号化されています、  [8,8,8,5,5]配列「は3つのエイト、ゼロナイン、2ファイブ」として読むことができるからです。

例1:

入力:[ "RLEIterator"、 "次へ"、 "次へ"、 "次へ"、 "次"]、[[[3,8,0,9,2,5]、[2]、[1]、[ 1]、[2]
出力:[NULL、8,8,5、-1]
説明:
RLEIteratorはRLEIterator([3,8,0,9,2,5])で初期化されます。
これは、シーケンス[8,8,8,5,5]にマップされます。
RLEIterator.nextはその後4回呼び出されます。

.next(2)、8 5、残りの配列は今8を返し、配列の2つの条件を排出します。

.next(1)残りの配列は今8を返し、配列の1つのタームを排気する[5,5]。

.next(1)残りの配列は今である[5] 5に戻り、シーケンスの1つのタームを排気します。

.next(2)-1を返し、2項を排出します。尽くさ第1項は5だったためである
が、第2項は存在しませんでした。排出最後の項が存在しないため、我々は-1を返します。

注意:

  1. 0 <= A.length <= 1000
  2. A.length 偶数の整数です。
  3. 0 <= A[i] <= 10^9
  4. せいぜいがあります  1000 への呼び出し  RLEIterator.next(int n) テストケースごと。
  5. それぞれのために呼び出す  RLEIterator.next(int n) 必要があります  1 <= n <= 10^9



Githubの同期住所:

https://github.com/grandyang/leetcode/issues/900



参考文献:

https://leetcode.com/problems/rle-iterator/



オールインワントピックのLeetCodeは(...更新)概要を説明します

おすすめ

転載: www.cnblogs.com/grandyang/p/11006782.html