Tâche
Étant donné un tableau d'entiers non négatifs a
, déterminez le nombre minimum de sauts vers la droite requis pour sauter "en dehors" du tableau, en commençant à la position 0, ou renvoyez zéro / nul s'il n'est pas possible de le faire.
Un saut d'index i
est défini comme une augmentation de l'index du tableau d'au plusa[i]
.
Un saut à l'extérieur est un saut où l'index résultant du saut i
est hors limites pour le tableau, donc pour l'indexation basée sur 1 i>length(a)
et pour l'indexation basée sur 0,i>=length(a)
.
Exemple 1
Considérez 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
Le chemin le plus court en "sautant" pour sortir des limites a une longueur 2
:
Nous pourrions sauter de 0->2->4->outside
qui a de la longueur 3
mais de la 0->4->outside
longueur, 2
alors nous revenons 2
.
Exemple 2
Supposons 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
Dans ce cas, il est impossible de sauter en dehors du tableau, nous devons donc retourner un zéro / null ou toute valeur non déterministe comme ∞
.
Exemple 3
Supposons Array=[4]
:
Array[0] = 4 -> You can jump 4 field
Nous pouvons directement sauter de l'index 0 en dehors du tableau, avec un seul saut, donc nous revenons 1
.
Éditer:
En raison de plusieurs questions sur la valeur de retour: Le retour ∞
est totalement valide s'il n'y a aucune chance de s'échapper. Parce que, s'il y a une chance, nous pouvons définir ce nombre.
C'est du code-golf , donc le code le plus court en octets gagne!
[2, 3, 1, 1]
.