题意
给出
n
个点和当前点能前进的最长距离,问能否从第一个点到达最后一个点
思路
从最后开始便利,将loc点看做目标点,如果遍历的点能够到达,那么更新目标点为遍历点,因为在前面只需要到达目标点即可到达最后.
代码
class Solution {
public:
bool canJump(
vector<int>& nums) {
size_t len = nums.size();
int loc = len -
1;
for(
int i = len -
2; i >=
0; i--){
if(i + nums[i] >= loc){
loc = i;
}
}
return loc ==
0;
}
};