# 55.跳跃游戏

## 问题描述
[55.跳跃游戏](https://leetcode.cn/problems/jump-game/)

## 解题思路
从后向前遍历，只要`nums[j]`能由`nums[j - 1]`或者更前面的点跳到，那么终点就从`nums[j]`变成`nums[j - 1]`或更前面的点。

## 代码
```cpp
#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;
    }
};
```


