55. 跳跃游戏c
int max(int i,int j){
if(i>j) return i;
return j;
}
bool canJump(int* nums, int numsSize) {
if(numsSize==1) return true;
if(nums[0]==0) return false;
int* dp=(int*)malloc(sizeof(int)*numsSize);
dp[0]=nums[0];
int maxn=dp[0];
for(int i=1;i<numsSize-1;i++){
if(dp[i-1]>=i){
dp[i]=max(dp[i-1],i+nums[i]);
}else{
dp[i]=0;
}
if(dp[i]>=maxn) maxn=dp[i];
}
if(maxn>=numsSize-1) return true;
return false;
}
结果:

浙公网安备 33010602011771号