#1539. 最少跳跃次数

最少跳跃次数

故事背景

在一个充满障碍的迷宫中,机器人需要从起点快速到达终点。机器人每次可以根据当前位置的能量值跳跃一定的距离。为了节省能源和时间,机器人需要找到一条跳跃次数最少的路径。作为迷宫的设计者,你需要为机器人计算出从起点到终点的最少跳跃次数。

题目描述

给定一个非负整数数组 nums,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。

输入格式

第一行输入一个整数 n ( 1n10001 \leq n \leq 1000 ),表示数组的长度。

第二行输入 n 个非负整数,表示每个位置的最大跳跃长度。

输出格式

输出一个整数,表示最少的跳跃次数。

样例输入 1

5
2 3 1 1 4

样例输出 1

2

样例输入 2

3
2 1 1

样例输出 2

1

样例输入 3

1
0

样例输出 3

0

提示

  • 这是一个经典的贪心算法问题
  • 可以通过跟踪当前能到达的最远位置和下一步能到达的最远位置来解决
  • 每次跳跃时,选择能让你到达最远位置的那个跳跃
  • 注意处理边界情况,例如已经在终点的情况