[LeetCode-55]基于贪心算法的跳跃游戏的求解(C语言版)

/*

题目出处:LeetCode

题目序号:55. 跳跃游戏

题目叙述:给你一个非负整数数组 nums ,你最初位于数组的第一个下标位置 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

*/

程序清单

#include<stdio.h>

#define TRUE 1

#define FALSE 0

int TestJump(int *nums, int length) {

int index;

int farthest = 0; // 最远距离

int jump[length];

for(index = 0; index < length; index++){

jump[index] = index + nums[index];

}

if (length == 1) {

printf("可以跳到最后。"); // 如果起始位置就是终点,则可以到达

return TRUE;

}

for (index = 0; index <= farthest; index++) {

if(farthest < jump[index]) {

farthest = jump[index];

}

if (farthest >= length - 1) {

printf("可以跳到最后。");

return TRUE;

}

}

printf("无法跳到最后。");

return FALSE;

}

int main() {

int n,i;

printf("请输入您想测试的数组的长度:\n");

scanf("%d",&n);

int a[n];

printf("请输入数组元素:\n");

for (i=0;i<n;i++){

scanf("%d",&a[i]);

}

TestJump(a,n);

return 0;

}

运行结果

相关推荐
im_AMBER1 小时前
Leetcode 78 识别数组中的最大异常值 | 镜像对之间最小绝对距离
笔记·学习·算法·leetcode
鼾声鼾语2 小时前
matlab的ros2发布的消息,局域网内其他设备收不到情况吗?但是matlab可以订阅其他局域网的ros2发布的消息(问题总结)
开发语言·人工智能·深度学习·算法·matlab·isaaclab
其美杰布-富贵-李2 小时前
HDF5文件学习笔记
数据结构·笔记·学习
LYFlied2 小时前
【每日算法】LeetCode 25. K 个一组翻转链表
算法·leetcode·链表
Swizard2 小时前
别再迷信“准确率”了!一文读懂 AI 图像分割的黄金标尺 —— Dice 系数
python·算法·训练
s09071362 小时前
紧凑型3D成像声纳实现路径
算法·3d·声呐·前视多波束
可爱的小小小狼2 小时前
算法:二叉树遍历
算法
d111111111d3 小时前
在STM32函数指针是什么,怎么使用还有典型应用场景。
笔记·stm32·单片机·嵌入式硬件·学习·算法
明洞日记3 小时前
【数据结构手册008】STL容器完全参考指南
开发语言·数据结构·c++
kingmax542120083 小时前
《数据结构C语言:单向链表-链表基本操作(尾插法建表、插入)》15分钟试讲教案【模版】
c语言·数据结构·链表