计蒜客 难题题库 018 跳跃游戏

给定一个非负整数数组,假定你的初始位置为数组第一个下标。

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

请确认你是否能够跳跃到数组的最后一个下标。

例如:

A = [2,3,1,1,4],

return true.

A = [3,2,1,0,4],

return false.

格式:

第一行输入一个正整数n,接下来的一行,输入数组A[n]。如果能跳到最后一个下标,输出“true”,否则输出“false”

样例1

输入:

5
2 0 2 0 1

输出:

true


#include<iostream>
using namespace std;

int main(){
    int n, max_index = 0, a;
    cin >> n;
    for(int i = 0; i <= max_index && i < n; ++i){
        cin >> a;
        max_index = max(max_index, a + i);
        if(max_index >= n - 1){
            cout << "true" << endl;
            return 0;
        }
    }
    cout << "false" << endl;
}


你可能感兴趣的:(OJ,计蒜客)