题目传送

思路:
dp,状态为:维护到每一个点的最小步数
class Solution {
public:
int jump(vector<int>& nums) {
int dp[10005];
fill(dp,dp+10005,1e9+7);
dp[0] = 0;
for(int i = 0;i < nums.size();i++)
{
for(int j = 1;j <= nums[i];j++) //遍历从i这个点能走到的所有点,然后维护最小值
{
int a = i+j;
if(a >= nums.size()) break;
dp[a] = min(dp[i]+1,dp[a]);
}
}
return dp[nums.size()-1];
}
};

本文介绍了一种使用动态规划解决跳远问题的方法。通过维护到达每个位置所需的最少步数来逐步更新状态,最终求得从起始位置到达终点所需的最小跳跃次数。
514

被折叠的 条评论
为什么被折叠?



