#45 跳跃游戏 II(动态规划)
状态描述:dp[i]为到达i需要的最短跳数。
状态转移:dp[i]=min(dp[i-1]+1,dp[i-2]+1,....,dp[i-n]+1)
初态:dp[0]=0
使用大数表示不可达简化代码
class Solution {
public:
int jump(vector<int>& nums) {
vector<int> dp(nums.size(),99999);
dp[0]=0;
for(int i=1;i<nums.size();i++)
for(int step=1;i-step>=0;step++)
if(nums[i-step]>=step && 1+dp[i-step]<dp[i])
dp[i]=1+dp[i-step];
return dp[nums.size()-1];
}
};