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 iokreśla się zwiększenie indeksu tablicy co najwyżej a[i].
Skoku na zewnątrz jest skok gdzie indeks wynikające ze skokiem iznajduje 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->outsidektórej ma długość, 3ale 0->4->outsidema długość, 2wię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].