1、题目
https://leetcode-cn.com/problems/jump-game-ii/submissions/
2、题意
题解1:贪心加dp f[i]表示跳到f[i]的最小步数 f[0] = 0;
class Solution {
public:
int jump(vector<int>& nums){
int n = nums.size();
vector<int> f(n);
for(int i=1,j=0;i<n;i++){
while(j+nums[j]<i) j++;
f[i] = f[j]+1;
}
return f[n-1];
}
};
题解2:
class Solution {
public:
int jump(vector<int>& nums)
{
int res = 0;
int end = 0;
int maxPos = 0;
for (int i = 0; i < nums.size() - 1; i++)
{
maxPos = max(nums[i] + i, maxPos);
if (i == end)
{
end = maxPos;
res++;
}
}
return res;
}
};