Zadanie
Biorąc pod uwagę tablicę liczb całkowitych nieujemnych a
, określ minimalną liczbę skoków w prawo wymaganych do przeskoku „poza” tablicę, zaczynając od pozycji 0, lub zwróć zero / null, jeśli nie jest to możliwe.
Skok z indeksu i
określa się zwiększenie indeksu tablicy co najwyżej a[i]
.
Skoku na zewnątrz jest skok gdzie indeks wynikające ze skokiem i
znajduje się aut do tablicy, to do indeksowania 1 opartej na i>length(a)
i do indeksowania 0 opartym i>=length(a)
.
Przykład 1
Zastanów się 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
Najkrótsza ścieżka „skakania”, by wyjść poza boisko, ma długość 2
:
Możemy skakać z 0->2->4->outside
której ma długość, 3
ale 0->4->outside
ma długość, 2
więc wracamy 2
.
Przykład 2
Załóżmy 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
W takim przypadku nie można wyskoczyć poza tablicę, dlatego powinniśmy zwrócić zero / null lub dowolną niedeterministyczną wartość jak ∞
.
Przykład 3
Załóżmy Array=[4]
:
Array[0] = 4 -> You can jump 4 field
Możemy bezpośrednio skoczyć z indeksu 0 poza tablicę za pomocą jednego skoku, więc wracamy 1
.
Edytować:
Ze względu na wiele pytań dotyczących wartości zwracanej: Zwrot ∞
jest całkowicie ważny, jeśli nie ma szans na ucieczkę. Ponieważ, jeśli istnieje szansa, możemy zdefiniować tę liczbę.
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
[2, 3, 1, 1]
.