[LeetCode题解]55.Jump Game

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Determine if you are able to reach the last index.

此题使用贪心算法,每遍历一个数组元素时判定其可以再跳几个位置,并维护该数MaxJump,若这个数大于末尾元素和当前元素的间隔,则可以跳出数据;若MaxJump等于0,则表示不能跳的更远,因而无法跳出。

下面给出代码:

bool canJump(vector& nums) {
    int MaxJump = -1;
    int size = nums.size();
    if(nums.size() <= 0)
        return false;
    for(int i = 0; i < size; i++){
        if(nums[i] > MaxJump)
            MaxJump = nums[i];
        if(MaxJump >= size-1-i)
            return true;
        if(MaxJump == 0)
            return false;
        MaxJump--;
    }
}


你可能感兴趣的:(leetcode)