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
.
问题分析:
1. 每个元素代表的是最大能jump的距离 -----> 那么能到达最后一个元素,那么必然就能到达倒数第二个元素 -----> 如果倒数第二个元素能到最后一个元素 -----> 问题就变成了第一个元素能否到达倒数第二元素 -----> 依次类推
bool canJump(int* nums, int numsSize) {
int dist = 1;
for (int i = numsSize - 2; i >= 0; i--)
dist = (nums[i] >= dist)? 1: dist + 1;
return dist == 1;
}
知识点:
1. bool值,return可以不用是true或者false,可以return一个整型值,0代表false,1代表true,上面的return语句也可以写成:return (!(dist - 1))