let nums = [3,2,1,0,4]
let max = 0
let temp = true
if(nums.length == 1&&nums[0]==0){
return temp
}
nums.forEach((val,index)=>{
// max用来标记每个index时可以跳到的最大位置
// 如果跳到一个位置为0 表示不能这个位置不能往前跳 要看此时的最大位置是否已经可以跳过这个位置
// 若是不能,就会卡在这个位置【失败】
if(val == 0&& max <= index && index!=nums.length-1){
temp = false
}
if(max<val+index){
max = val+index
}
})
return temp
时间复杂度还是有点高,可能是运用了forEach的原因,一定要遍历完成才可以结束。for循环+中间判断可能会好点。但我懒。下次再改吧😥