问题描述 链接到标题
解题思路 链接到标题
从后向前遍历,只要nums[j]
能由nums[j - 1]
或者更前面的点跳到,那么终点就从nums[j]
变成nums[j - 1]
或更前面的点。
代码 链接到标题
#include <vector>
using std::vector;
class Solution {
public:
bool canJump(vector<int> &nums) {
int r = nums.size() - 1;
for (int i = nums.size() - 2; i >= 0; i--) {
while (i >= 0 && nums[i] + i >= r) {
r = i;
i--;
}
}
if (r != 0)
return false;
else
return true;
}
};