leetcode 45.跳跃游戏2

题目

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

解法 贪心算法

  1. 正向遍历
class Solution {
public:
    int jump(vector<int>& nums) {
        int len = nums.size();
        if(len < 2)
            return 0;
        
        int max_pos = 0;
        int end = 0;
        int step = 0;
        for(int i = 0 ; i < len && end < len - 1;i++)
        {
            max_pos = max(max_pos,nums[i] + i);
            if(i == end)
            {
                end = max_pos;
                step++;
            }
        }
        return step;
    }
};

你可能感兴趣的:(leetcode)