首页 > 代码库 > lintcode116跳跃游戏

lintcode116跳跃游戏

描述

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

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

判断你是否能到达数组的最后一个位置。

技术分享

思路:

一开始被所给的注意事项锁迷惑,想要用动态规划解决问题,后来在网上查的资料可知,可以先进行遍历,将所记录的点与数组长度相比较,得出结果。这样一来反倒简单了不少,不用考虑太多:

class Solution {
public:
    /**
     * @param A: A list of integers
     * @return: The boolean answer
     */
    bool canJump(vector<int> A) {
       int N = 0;  
        int i = 0;  
        while(i <= N)  
        {  
            N = max(N ,i + A[i]);
            i++;  
            if(N >= A.size()-1)  
                return true;  
        }  
        return false;  
    }
};

 

lintcode116跳跃游戏