链接:https://leetcode-cn.com/problems/jump-game/
比较简单的贪心问题,可以从前向后考虑当前能跳的最远距离,也可以从后向前考虑能跳到终点的最远距离。
C++:
class Solution {
public:
bool canJump(vector<int>& nums) {
int maximum = 0;//当前能跳到的最远下标
for(int i = 0;i<nums.size();i++)
{
if(maximum<i)
return false;
maximum=max(maximum,i+nums[i]);
}
return true;
}
};
java:
class Solution {
public boolean canJump(int[] nums) {
int longest = nums.length-1;
for(int i = nums.length-2;i>=0;i--)
{
if(nums[i]+i>=longest)
longest = i;
}
return (longest==0);
}
}