问题
https://leetcode.com/problems/jump-game/
解法
贪心法:
now 表示要到达最后一个位置,至少要到达的位置。如果有位置i可以到达now则now = i;从后向前扫描如果now==0 则表示可以从0处到达最后一个位置。
class Solution {
public:
bool canJump(vector<int>& nums) {
if (nums.size()==0)
return false;
if (nums.size() ==1)
return true;
int now = nums.size()-1;
for (int i=nums.size()-2; i>=0; --i)
{
if (i+nums[i] >= now)
now = i;
}
return now==0;
}
};
nums.size()-2 注意至少要有2个元素时才可以进入for 循环。