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 && nums[0]>=0) return true;
    if(nums[0]==0) return false;
    int* dp=(int*)malloc(sizeof(int)*numsSize);//dp[i]加入了第i跳板个可选择跳
    dp[0]=nums[0];
    for(int i=1;i<numsSize;i++){
        if(dp[i-1]>=i){
            dp[i]=max(dp[i-1],i+nums[i]);
        }else{
            dp[i]=dp[i-1];
        }
        if(dp[i]>=numsSize-1) return true;
    }
    return false;
}

结果:

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