本題使用遞歸方法求解。javascript
1.判斷數組是否爲全正,若是爲全正則必定能跳到最後一步,則返回true。java
2.若是不爲全正,則從數組最後開始,找到能到最後一步的前一步。再之前一部以前的的數組做爲初始數組進行遞歸。數組
3.若是能從第一步走到最後一部則返回true。code
4.檢查完數仍是不能到最後一部,返回false。 遞歸
var canJump = function(nums) { var j=0; for(j=0;j<nums.length;j++){ if(nums[j]<=0) break; } if(j==nums.length) return true; for(var i=nums.length-1;i>=0;i--){ if(nums.length <= 1){ return true; } else if(i>0 && i-1+nums[i-1] >= nums.length-1){ if(i-1 <= 0) return true else return canJump(nums.slice(0,i)); } } return false };
使用js求解,用遞歸的思想。ip
原創,轉載請註明出處io