这是LeetCode的#### 55. 跳跃游戏
var canJump = function(nums) {
let state = false;
let length = nums.length-1;
recur(length)
//递归函数 num是位置 list是数组
function recur(num){
//终止条件 有0就结束
if(num == 0){
state = 0 ;
return;
}
list = arrive(num);
if(list.length == 0){
return;
}
for(let i = 0; i < list.length; i++){
recur(list[i]);
}
};
//传递一个位置数字 返回可以到达的位置列表
function arrive(num) {
let list = [];
for(let i = 0; i < num; i++){
if(nums[i]+i == num){
list.push(i)
}
}
return list;
}
return state
};
应该循环两次 但是因为循环第一个内的递归不满足条件 后续的循环的第二次就不运行了 很迷惑 是因为递归不能用For吗
你
return
了,要想继续递归,要执行recur