學渣帶你刷Leetcode0055跳躍遊戲

題目描述

給定一個非負整數數組,你最初位於數組的第一個位置。

數組中的每個元素代表你在該位置可以跳躍的最大長度。

判斷你是否能夠到達最後一個位置。

示例 1:

輸入: [2,3,1,1,4]
輸出: true
解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然後再從位置 1 跳 3 步到達最後一個位置。
示例 2:

輸入: [3,2,1,0,4]
輸出: false
解釋: 無論怎樣,你總會到達索引爲 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後一個位置。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/jump-game
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

白話題目:
 

算法:

 

詳細解釋關注 B站  【C語言全代碼】學渣帶你刷Leetcode 不走丟 https://www.bilibili.com/video/BV1C7411y7gB

C語言完全代碼

bool canJump(int* nums, int numsSize){
    if (numsSize == 0) return false;
    int * maxjump_arr = (int *)malloc(sizeof(int) * numsSize);
    int max_jump = 0;
    memset(maxjump_arr, 0, sizeof(int) * numsSize);
    for (int i = 0; i < numsSize; i++) {
        maxjump_arr[i] = i + nums[i];
    }


    for (int i = 0; i < numsSize; i++) {
        if (maxjump_arr[i] > max_jump) {
            max_jump = maxjump_arr[i];
        }
        if(i >= max_jump){ 
            break;
        }
    }
    //printf("%d ", max_tmp);
    if (max_jump >= numsSize -1 ) return true;

    return false;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章