55. Jump Game

来源:互联网 发布:网络机顶盒因该多少钱 编辑:程序博客网 时间:2024/06/11 11:09

题目

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Determine if you are able to reach the last index.

For example:
A = [2,3,1,1,4], return true.

A = [3,2,1,0,4], return false.

分析

i可以看成是走过的路程,多余的排列组合得到的结果就是i,

所以用for循环得到的最大距离A[i]+i如果不小于总距离,就是可到达的.

但是判断条件困扰了我很久

i<n&&i<=d,因为i是走过的路程,如果i>d了,最大距离小于i,则不可到达,

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

0 0
原创粉丝点击