读完这道题首先想到的是用通项公式递归,进一步想到用动态规划。做完发现时间空间复杂度都是后10%。重新思考一下发现没有比较整位图,只需要记录最小可达位置就行了。并且判断条件也可以更简单。
class Solution {
public boolean canJump(int[] nums) {
//int len=nums.length;
//boolean[] flag=new boolean[len];
//flag[len-1]=true;
int min=nums.length-1;
for(int i=nums.length-2;i>=0;i--){
if (i+nums[i]>=min){
min=i;
}
// for(int j=1;j<=nums[i]&&i+j<len;j++){
// if (flag[i+j]){
// flag[i]=true;
// break;
// }
// }
}
return min==0;
}
}