45. 跳跃游戏 II(LeetCode中等)(DP)

45. 跳跃游戏 II

class Solution {
public:
    int jump(vector<int>& nums) {
        int n = nums.size();
        vector<int> f(n, 0);
        //f[i]表示从起点跳到i的最小步数
        //找到每段距离的最大右边界
        for(int i = 1, j = 0; i < n; ++i){
            while(j + nums[j] < i) ++j;
            f[i] = f[j] + 1;
        }

        return f[n-1];
    }
};
posted @ 2025-03-14 15:45  awei040519  阅读(12)  评论(0)    收藏  举报