仕事
負でない整数a
の配列を指定すると、位置0から開始して配列の「外側」にジャンプするために必要な右方向ジャンプの最小数を決定します。そうしない場合はゼロ/ nullを返します。
インデックスからのジャンプi
は、配列インデックスの最大増加分であると定義されていますa[i]
。
外部へのジャンプは、ジャンプの結果のインデックスi
が配列の範囲外であるジャンプです。そのため、1ベースのインデックス付けi>length(a)
では、0ベースのインデックス付けでは、i>=length(a)
。
例1
考慮してください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
範囲外に移動する「ジャンプ」による最短経路の長さは2
次のとおりです。
私たちは、からジャンプすることができ0->2->4->outside
長さを有している3
が、0->4->outside
長さを持って2
、我々は返すよう2
。
例2
仮定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
この場合、配列の外にジャンプすることは不可能なので、ゼロ/ヌルまたはのような非決定論的な値を返す必要があります∞
。
例3
仮定Array=[4]
:
Array[0] = 4 -> You can jump 4 field
1回のジャンプで、配列の外側のインデックス0から直接ジャンプできるため、を返し1
ます。
編集:
戻り値に関する複数の質問のため:∞
エスケープする機会がない場合、戻り値は完全に有効です。機会があれば、その数を定義できるからです。
これはcode-golfなので、バイト単位の最短コードが勝ちです!
[2, 3, 1, 1]
。