题目:55. 跳跃游戏
思路:维护能跳到的最远距离mx。时间复杂度0(n)
C++版本:
class Solution {
public:
bool canJump(vector<int>& nums) {
int mx=0;
for(int i=0;i<nums.size();i++){
if(i>mx) break;
mx=max(mx,i+nums[i]);
}
return mx>=nums.size()-1;
}
};
JAVA版本:
class Solution {
public boolean canJump(int[] nums) {
int mx=0;
for(int i=0;i<nums.length;i++){
if(i>mx) break;
mx=Math.max(mx,i+nums[i]);
}
return mx>=(nums.length-1);
}
}