给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数,
第一步必须从第一元素开始,1<=步长<len/2, 第二步开始以所在成员的数字走相应的步数,如果目标不可达返回-1,只输出最少的步骤数量
输入7 5 9 4 2 6 8 3 5 43 9
输出2
function resolve(nums = "7 5 9 4 2 6 8 3 5 4 3 9") {//1 2 3 7 1 5 9 3 2 1
let arr = nums.split(" ").map(Number);
console.log(arr);
let sum = 0;
for (let j = 1; j < arr.length / 2; j++) {
if (step(j, arr)) {
sum++;
}
}
if (sum === 0) {
console.log(-1);
} else {
console.log(sum);
}
}
resolve();
function step(i, arr) {// 0 1 ->
while (i < arr.length - 1) {
i = i + arr[i];// 6-1 10
}
if (i === arr.length - 1) {
return true;
}
if (i > arr.length - 1) {
return false;
}
}