## 55. Jump Game

Given an array of non-negative integers `nums`

, 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.

**Example 1:**

Input:nums = [2,3,1,1,4]Output:trueExplanation:Jump 1 step from index 0 to 1, then 3 steps to the last index.

**Example 2:**

Input:nums = [3,2,1,0,4]Output:falseExplanation:You will always arrive at index 3 no matter what. Its maximum jump length is 0, which makes it impossible to reach the last index.

**Constraints:**

`1 <= nums.length <= 3 * 10`

^{4}`0 <= nums[i] <= 10`

^{5}

## Rust Solution

```
struct Solution;
impl Solution {
fn can_jump(nums: Vec<i32>) -> bool {
let n = nums.len();
let mut last = n - 1;
for i in (0..n).rev() {
if i + nums[i] as usize >= last {
last = i;
}
}
last == 0
}
}
#[test]
fn test() {
let nums = vec![2, 3, 1, 1, 4];
let res = true;
assert_eq!(Solution::can_jump(nums), res);
let nums = vec![3, 2, 1, 0, 4];
let res = false;
assert_eq!(Solution::can_jump(nums), res);
}
```

Having problems with this solution? Click here to submit an issue on github.