Aufgabe
a
Bestimmen Sie bei einem Array nicht negativer Ganzzahlen die Mindestanzahl von Rechtssprüngen, die erforderlich sind, um "außerhalb" des Arrays zu springen, beginnend an Position 0, oder geben Sie null / null zurück, wenn dies nicht möglich ist.
Ein Sprung vom Index i
ist definiert als eine Erhöhung des Array-Index um höchstens a[i]
.
Ein Sprung nach draußen ist ein Sprung, bei dem der aus dem Sprung resultierende Index i
für das Array außerhalb der Grenzen liegt, also für die 1-basierte Indizierung i>length(a)
und für die 0-basierte Indizierung i>=length(a)
.
Beispiel 1
Betrachten Sie Array = [4,0,2,0,2,0]
:
Array[0] = 4 -> You can jump 4 field
Array[1] = 0 -> You can jump 0 field
Array[2] = 2 -> You can jump 2 field
Array[3] = 0 -> You can jump 0 field
Array[4] = 2 -> You can jump 2 field
Array[5] = 0 -> You can jump 0 field
Der kürzeste Weg durch "Springen" zum Überschreiten der Grenzen hat Länge 2
:
Wir könnten springen, von 0->2->4->outside
dem Länge hat, 3
aber 0->4->outside
Länge hat, 2
also kehren wir zurück 2
.
Beispiel 2
Nehmen wir an Array=[0,1,2,3,2,1]
:
Array[0] = 0 -> You can jump 0 fields
Array[1] = 1 -> You can jump 1 field
Array[2] = 2 -> You can jump 2 field
Array[3] = 3 -> You can jump 3 field
Array[4] = 2 -> You can jump 2 field
Array[5] = 1 -> You can jump 1 field
In diesem Fall ist es nicht möglich, aus dem Array herauszuspringen. Wir sollten daher eine Null / Null oder einen beliebigen nicht deterministischen Wert wie zurückgeben ∞
.
Beispiel 3
Nehmen wir an Array=[4]
:
Array[0] = 4 -> You can jump 4 field
Wir können mit nur einem Sprung direkt von Index 0 außerhalb des Arrays springen, also kehren wir zurück 1
.
Bearbeiten:
Aufgrund mehrfacher Fragen zum Rückgabewert: Die Rückgabe ∞
ist vollständig gültig, wenn keine Fluchtmöglichkeit besteht. Denn wenn es eine Chance gibt, können wir diese Zahl definieren.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
[2, 3, 1, 1]
.