llllmz

导航

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;
}

结果:

posted on 2024-03-16 16:36  神奇的萝卜丝  阅读(20)  评论(0)    收藏  举报