以下に説明するように、負でない整数の配列が与えられた場合、タスクはその特定の要素のみを保持することです。
配列がであるとしましょう
[1, 3, 2, 4, 11, 5, 2, 0, 13, 10, 1]
。まず、配列の最初の要素を取得し
n
ます。最初のn
要素を保持し、次の要素を破棄します(n+1
thは破棄します)。新しい配列は[1, 2, 4, 11, 5, 2, 0, 13, 10, 1]
です。次に、削除した要素の次の要素を取得し、まったく同じことを行います。プロセスを再適用すると、
[1, 2, 11, 5, 2, 0, 13, 10, 1]
配列の境界の外側に到達するまで、または配列に要素がなくなるまで、このプロセスを繰り返します。
11
配列の長さよりも大きいため停止します。次に、結果を出力する必要があります。
入力/出力は、任意の標準形式で取得/提供できます。配列は決して空ではなく、負でない整数のみを含みます。すべての標準的な抜け穴は禁止されています。
これはコードゴルフなので、バイト単位の最短コードが勝ちです!
テストケース
入力->出力 [1、2、3、4、5]-> [1、3、4] [6、1、0、5、6]-> [6、1、0、5、6] [1、3、2、4、11、5、2、0、13、10、1]-> [1、2、11、5、2、0、13、10、1] [2、2、2、2、2、2]-> [2、2] [1、2、3、1、2、3、1、2、3]-> [1、2] [3、1、2、4、0]-> [] *
*最後のテストケースにはが含まれる0
ので、より明確になるようにプロセスを投稿することにしました。
[3, 1, 2, 4, 0] --> [3, 1, 2, 0] --> [1, 2, 0] --> [1, 0] --> [0] --> [] )
(この挑戦に触発によってエリックOutgolfer)
2
なく最初のステップで削除されるの3
ですか?
[1, 2, 3, 1, 2, 3, 1, 2, 3]
n
"に移動すると、常にn
要素を保持するために配列の先頭から開始しますか?(一見思ったように)n
最初の要素n
が評価対象の要素を保持しないのですか?