题目链接:
题目描述:
解题思路:
- 如果某一个位置的元素为N,表示后面N个位置都可以作为起跳点
- 把每一个能作为起跳点的位置都进行尝试,不断更新能跳到的最远位置
复杂度分析:
- 时间复杂度O(N)
- 空间复杂度O(1)
代码实现:
cpp
class Solution {
public:
bool canJump(vector<int>& nums) {
int temp = 0;
int n = nums.size();
for (int i=0; i<n; i++){
if(i> temp) return false;
temp = max(temp, i+nums[i]);
}
return true;
}
};