[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;

}

运行结果

相关推荐
pen-ai1 分钟前
【YOLO系列】 YOLOv1 目标检测算法原理详解
算法·yolo·目标检测
2301_7657031422 分钟前
C++中的职责链模式实战
开发语言·c++·算法
StandbyTime30 分钟前
《算法笔记》学习记录-第一章
c++·算法·算法笔记
近津薪荼35 分钟前
优选算法——双指针8(单调性)
数据结构·c++·学习·算法
松☆36 分钟前
Dart 中的常用数据类型详解(含 String、数字类型、List、Map 与 dynamic) ------(2)
数据结构·list
格林威37 分钟前
Baumer相机铆钉安装状态检测:判断铆接是否到位的 5 个核心算法,附 OpenCV+Halcon 的实战代码!
人工智能·opencv·算法·计算机视觉·视觉检测·工业相机·堡盟相机
星空露珠1 小时前
速算24点检测生成核心lua
开发语言·数据库·算法·游戏·lua
历程里程碑1 小时前
Linux15 进程二
linux·运维·服务器·开发语言·数据结构·c++·笔记
happygrilclh2 小时前
高压高频电源的pid算法
算法
格林威2 小时前
Baumer相机铸件气孔与缩松识别:提升铸造良品率的 6 个核心算法,附 OpenCV+Halcon 实战代码!
人工智能·opencv·算法·安全·计算机视觉·堡盟相机·baumer相机