Tarea
Dado un conjunto de enteros no negativos a
, determine el número mínimo de saltos hacia la derecha necesarios para saltar "fuera" de la matriz, comenzando en la posición 0, o devolver cero / nulo si no es posible hacerlo.
Un salto desde el índice i
se define como un aumento en el índice de matriz como máximoa[i]
.
A fuera de salto es un salto donde el índice resultante de la salto i
está fuera de los límites para la matriz, por lo que para la indexación 1 basada en i>length(a)
, y para la indexación 0 a base de, i>=length(a)
.
Ejemplo 1
Considera 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
El camino más corto al "saltar" para salir de los límites tiene longitud 2
:
Podríamos saltar de lo 0->2->4->outside
que tiene longitud 3
pero 0->4->outside
tiene longitud, 2
así que volvemos 2
.
Ejemplo 2
Supongamos 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
En este caso, es imposible saltar fuera de la matriz, por lo que deberíamos devolver un valor cero / nulo o cualquier valor no determinista como ∞
.
Ejemplo 3
Supongamos Array=[4]
:
Array[0] = 4 -> You can jump 4 field
Podemos saltar directamente desde el índice 0 fuera de la matriz, con solo un salto, por lo que volvemos 1
.
Editar:
Debido a múltiples preguntas sobre el valor de retorno: la devolución ∞
es totalmente válida, si no hay posibilidad de escapar. Porque, si hay una posibilidad, podemos definir ese número.
Este es el código de golf , por lo que gana el código más corto en bytes.
[2, 3, 1, 1]
.