Bei einem Array nicht negativer Ganzzahlen besteht Ihre Aufgabe darin, nur bestimmte Elemente davon beizubehalten, wie im Folgenden beschrieben.
Angenommen, das Array ist
[1, 3, 2, 4, 11, 5, 2, 0, 13, 10, 1]
.Zuerst sollten Sie das erste Element des Arrays
n
. Behalten Sie die erstenn
Elemente und werfen Sie das nächste weg (werfen Sie dasn+1
th weg). Das neue Array ist[1, 2, 4, 11, 5, 2, 0, 13, 10, 1]
.Dann greifen Sie zu dem Element, das dem entfernten folgt, und tun genau dasselbe. Wenn wir den Prozess erneut anwenden, erhalten wir
[1, 2, 11, 5, 2, 0, 13, 10, 1]
Sie wiederholen den Vorgang, bis Sie außerhalb der Grenzen des Arrays ankommen bzw. keine Elemente mehr im Array vorhanden sind. Wir hören auf, weil
11
höher als die Länge des Arrays ist.Nun sollten Sie das Ergebnis ausgeben.
Die Eingabe / Ausgabe kann in jeder Standardform erfolgen. Das Array wird niemals leer sein und nur nicht negative ganze Zahlen enthalten. Alle Standardlücken sind verboten.
Das ist Code-Golf, also gewinnt der kürzeste Code in Bytes!
Testfälle
Eingabe -> Ausgabe [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] [1, 2, 3, 1, 2, 3, 1, 2, 3] -> [1, 2] [3, 1, 2, 4, 0] -> [] *
* Der letzte Testfall beinhaltet 0
, also habe ich beschlossen, den Prozess so zu posten, dass er klarer ist:
[3, 1, 2, 4, 0] --> [3, 1, 2, 0] --> [1, 2, 0] --> [1, 0] --> [0] --> [] )
( Inspiriert von dieser Herausforderung von Erik dem Outgolfer )
2
im ersten Schritt statt entfernt 3
?
[1, 2, 3, 1, 2, 3, 1, 2, 3]
n
" wechseln, fangen Sie immer am Anfang des Arrays an, um die n
Elemente beizubehalten. Nicht (wie ich auf den ersten Blick dachte) n
Elemente dort aufbewahren, wo das erste Element ist, das n
Sie bewerten?