45. 跳跃游戏 II

45. 跳跃游戏 II


题目链接:45. 跳跃游戏 II

代码如下:

//参考leetcode官方题解
//贪心算法
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(maxPos, i + nums[i]);

            //到达上次跳跃能到达的右边界了
            if (i == end) {
                end = maxPos;//目前能跳到的最远位置变成了下次起跳位置的右边界
                res++;//进入下一次跳跃
            }
        }

        return res;
    }
};

你可能感兴趣的:(leetcode,c++)