Leet code —Jump Game

问题叙述性说明:

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.

class Solution {
public:
    bool canJump(int A[], int n) {
        if (n < 1) 
            return false;
        int max_step, i, tmp;
        max_step = tmp = 0;
        for (i = 0; i < n; i++) {
            if (A[i] > max_step)
                max_step = A[i];
            if ((tmp = max_step + i) == n-1 || tmp > n-1)
                return true;
            if (max_step == 0)
                return false;
            max_step--;
        }
    }
};


版权声明:本文博主原创文章,博客,未经同意不得转载。

posted @ 2015-10-14 14:12  blfshiye  阅读(153)  评论(0编辑  收藏  举报