您的位置:首页 > 其它

【计蒜客系列】挑战难题18:跳跃游戏

2015-07-20 21:01 190 查看
题目来源:计蒜客

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

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

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

例如:

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

return true.

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

return false.

格式:

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

样例1

输入:

5

2 0 2 0 1

输出:
true

#include<stdio.h>
int canJump(int* nums, int numsSize) {
if(numsSize <= 1)
return 1;
int maxStep = 0;
int i ;
for(i = 0;i < numsSize;i++)
{
maxStep = maxStep > (nums[i]+i) ? maxStep : (nums[i]+i);
if(i != numsSize-1 && maxStep <= i)
return 0;
if(maxStep >= numsSize-1)
return 1;
}
return 1;
}

int main()
{
int A[10000];
int n ;
scanf("%d",&n);
for ( int i = 0 ; i < n ;++i)
scanf("%d",&A[i]);

if(canJump(A,n))
printf("true\n");
else
printf("false\n");
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计蒜客