leetcode 45. 跳跃游戏 II

贪心算法
每次在可以在当前可达到的范围内找 i+nums[i] 最大的那个作为下一个位置。

class Solution {
public:
    int jump(vector<int>& nums) {
        int pos = 0;
        int mav = -1;
        int mapos =-1;
        int counter = 0;
        if(nums.size()==0 || nums.size()==1){
            return pos;
        }
        while(pos + nums[pos] <nums.size()-1){
            for(int i=pos+1;i<=pos+nums[pos];i++){
                //cout<<"aaaaa"<
                if(i+nums[i]>mav){
                    mav = i+nums[i];
                    mapos = i;
                }
            }
            pos = mapos;
            counter ++;
        }
        return counter+1;
    }
};

你可能感兴趣的:(leetcode)