Görev
Negatif olmayan bir tamsayı dizisi verildiğinde, dizinin a"dışına" atlamak, 0 konumundan başlayarak veya mümkün değilse sıfır / null döndürmek için gereken minimum sağa atlama sayısını belirleyin.
Dizinden atlama , idizi dizininde en fazla artış olarak tanımlanır a[i].
Bir sıçrama dış atlama kaynaklanan göstergesi bir atlama iyani 1 tabanlı bir dizin için, dışı sınırları dizisi için i>length(a), ve 0 tabanlı dizin için i>=length(a).
örnek 1
Şunları düşünün 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
Sınırların dışına çıkmak için "zıplayarak" en kısa yolun uzunluğu vardır 2:
Biz atlama olabilir 0->2->4->outsidehangi uzunluğa sahiptir 3fakat 0->4->outsideuzunluğa sahiptir 2dönmek böylece 2.
ÖRNEK 2
Varsayalım 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
Bu durumda, dizinin dışına atlamak imkansızdır, bu nedenle sıfır / null veya herhangi bir deterministik olmayan değer döndürmeliyiz ∞.
ÖRNEK 3
Varsayalım Array=[4]:
Array[0] = 4 -> You can jump 4 field
Dizinin dışından 0 dizininden doğrudan tek bir atlama ile atlayabiliriz, bu yüzden geri döneriz 1 .
Düzenle:
Dönüş değeri hakkında birden fazla soru nedeniyle: İade ∞ Kaçış şansı yoksa tamamen geçerlidir. Çünkü bir şans varsa, o sayıyı tanımlayabiliriz.
Bu kod golf , bu yüzden bayt içindeki en kısa kod kazanır!
[2, 3, 1, 1].