题目:跳跃游戏
原题链接:跳跃游戏
这道题刚开始自己做时出了点错,无法AC,于是看了解答,发现下面这种解答极为精妙。
每次更新当前节点能够到达的最远距离,如果当前节点到达的最远距离小于当前节点的偏移量,那么就判断不能到达。代码如下:
class Solution {
public:
bool canJump(vector<int>& nums) {
int k = 0;
for(int i = 0; i < nums.size(); i++){
if(k < i) return false;
k = max(k, i + nums[i]);
}
return true;
}
};
原解答连接:别想那么多,就挨个跳吧
题外话:
对大多数人而言,人生不是什么冒险,而是一股莫之能御的洪流。
——雷蒙德·卡佛