一、问题描述
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.
For example:
A = [2,3,1,1,4]
, return true
.
A = [3,2,1,0,4]
, return false
.
二、思路
本体采用贪心算法。题意是看最后能不能超过最高层n,能超过,说明能到达,否则不能到达。
三、代码
class Solution {
public:
bool canJump(vector<int>& nums) {
int i = 0,reach = 0;
int n = nums.size();
for(; i < n && i <= reach; ++i)
reach = max(reach, i + nums[i]);
return i == n;
}
};