有一道算法题是这样,一个数组存储了非负整型数据,数组的第i个元素num[i],代表了可以从数组第i个位置最多向前跳跃num[i]步,已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个位置。例如[2,3,1,1,4],可以从num[0]跳到num[4],
[3,2,1,0,4]不可以从num[0]跳到num[4]
function isGet(arr){
var x=[]
for(var i=0;i<arr.length;i++){
x.push(i+arr[i])
}//记录每个元素可以跳到最远的下标
var jump=0;//跳跃的下标
var max=x[0];
while(jump<x.length&&jump<=max){
if(max<x[jump]){
max=x[jump]
}
jump++;
}
if(jump==x.length){
return true
}
return false;
}