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

}

运行结果

相关推荐
楼田莉子24 分钟前
C++算法专题学习——分治
数据结构·c++·学习·算法·leetcode·排序算法
一支鱼40 分钟前
leetcode常用解题方案总结
前端·算法·leetcode
ulias2121 小时前
各种背包问题简述
数据结构·c++·算法·动态规划
m0_570466411 小时前
代码随想录算法训练营第二十八天 | 买卖股票的最佳实际、跳跃游戏、K次取反后最大化的数组和
java·开发语言·算法
吃着火锅x唱着歌1 小时前
LeetCode 1537.最大得分
算法·leetcode·职场和发展
数模加油站1 小时前
25高教社杯数模国赛【C题超高质量思路+可运行代码】第十弹
算法·数学建模·数模国赛·高教社杯全国大学生数学建模竞赛
ulias2121 小时前
动态规划入门:从记忆化搜索到动态规划
算法·动态规划
山河君2 小时前
webrtc之语音活动上——VAD能量检测原理以及源码详解
算法·音视频·webrtc·信号处理
THMAIL2 小时前
深度学习从入门到精通 - LSTM与GRU深度剖析:破解长序列记忆遗忘困境
人工智能·python·深度学习·算法·机器学习·逻辑回归·lstm
JuneXcy2 小时前
结构体简介
c语言·数据结构·算法