题目描述:
给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员的步骤数,第一步必须从第一个元素开始,1<=步长<len/2,第二步开始以所在成员的数组走相应的步数。如果目标不可达返回-1,只输出最少的步骤数量。
输入描述:
由正整数组成的数组,以空格分隔,数组长度小于100,请自行解析数据数量。
输出描述:
正整数,表示最少的步数,如果不存在输出-1.
示例:
输入:
7 5 9 4 2 6 8 3 5 4 3 9
输出:
2
—————————————
var nums = [7,5, 9, 4, 2, 6, 8, 3, 5, 4, 3, 9];
var min = -1;
var result = [];
for(var i= 1;i < Math.floor(nums.length/2);i++){
var index = 0,//当前位置
step = 0,//步长
total = 0;//总共走的次数
step = i;//
index += step;
total ++;
check(index);
}
function check(index){
if(index === nums.length - 1){
result.push(total);
if(min !== -1 ){
if(min > total){
min = total;
}
}else{
min = total;
}
}else{
if(index < nums.length - 1){
step = nums[index];
index += step;
total ++;
check(index);
}else{
return;
}
}
}
console.log('result',result);
console.log('min',min);