55. 跳跃游戏

55. 跳跃游戏 - 力扣(LeetCode) (leetcode-cn.com)

这题要判断能否在当前可以跳的步子内跳出这个步子范围,也是在这个范围内找到 位置+该位置能跳的步数结果中最大的位置,跳到该位置处,如果当前可以跳的步子能够跳到结尾,返回true。

class Solution {
public:
    bool canJump(vector<int>& nums) {
        if(nums.size()==1) return true;
        int start=0,index=0,pos=0,max=0;
        while(true){
            if(nums[start]>=nums.size()-start-1) return true;
            pos=index;
            for(int i=start+1;i<=start+nums[start];i++){
                if(max<i+nums[i]){
                    max=i+nums[i];
                    index=i;
                }
            }
            if(pos==index) return false;
            start=index;
        }

    }
};

上一篇:多线程实现按序打印


下一篇:Python基本功测试:5 == 5 > 4,结果是True还是False?