计蒜客 跳跃游戏

跳跃游戏

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

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

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

例如:

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

return true.

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

return false.

格式:

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

样例输入

5
2 0 2 0 1

样例输出

true

 1 #include"iostream"
 2 #define MAX 10000
 3 using namespace std;
 4 
 5 int jump(int n, int *a, int p)
 6 {
 7     if (p >= n)
 8         return 1;
 9     for (int i = a[p]; i>0; i--)
10     {
11         if (jump(n, a, p + i) == 1)
12             return 1;
13         else
14             a[p + i] = -1; //p+1位置到不了最后
15     }
16     return 0;
17 }
18 
19 int main()
20 {
21     int a[MAX];
22     int n,tag;
23     tag = 0;
24     cin >> n;
25     for (int i = 0; i<n; i++)
26     {
27         cin >> a[i];
28     }
29 
30     if (jump(n,a,0))
31         cout << "true";
32     else
33         cout << "false";
34 
35 }

 

posted @ 2016-06-02 12:33  SeeKHit  阅读(269)  评论(0编辑  收藏  举报