【计蒜客系列】挑战难题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
给定一个非负整数数组,假定你的初始位置为数组第一个下标。
数组中的每个元素代表你在那个位置能够跳跃的最大长度。
请确认你是否能够跳跃到数组的最后一个下标。
例如:
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"); }
相关文章推荐
- 泡面吧” “计蒜客” 挑战难题 第16题:爬楼梯
- 【计蒜客系列】挑战难题17:x的平方根
- 【计蒜客系列】挑战难题16:爬楼梯
- 【计蒜客系列】挑战难题15:单独的数字
- 【计蒜客系列】挑战难题12:最后一个单词的长度
- 【计蒜客系列】挑战难题11:移除数组中重复元素
- 【计蒜客系列】挑战难题10:寻找插入位置
- 【计蒜客系列】挑战难题9:元素移除
- 【计蒜客系列】挑战难题8:字符串长度
- 【计蒜客系列】挑战难题5:矩阵翻转
- 【计蒜客系列】挑战难题4:简单斐波那契
- 【计蒜客系列】挑战难题2:整除问题
- 【计蒜客系列】挑战难题1:A+B+C问题
- 计蒜客第三场 -- A 腾讯课堂的物理实验
- 计蒜客蓝桥杯模拟赛5 引爆炸弹
- 计蒜客蓝桥杯模拟赛 九宫格
- 2017 计蒜之道 初赛 第三场
- 计蒜客 微软项目经理的挑选方案
- 计蒜客 百度地图的实时路况
- 计蒜客—程序设计竞赛入门