AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2495. 找终点

简单通过率 28% · 提交 1,117 · 通过 309
模拟枚举数学

小慕正在处理一个数组项目,数组名为 nums,最多包含100个元素。他需要从第一个元素出发,恰好走到最后一个元素,并找出最少的步数。 要求如下: 1. 第一步必须从第一个元素开始,且必须满足:1 ≤ 第一步的步长 < len/2(len 是数组长度,需要小慕自己解析)。 2. 从第二步开始,小慕只能按照当前所在位置的数字值走相应的步数,不能多也不能少。如果无法到达最后一个元素,则返回 -1,只输出最少的步数。 3. 小慕只能向数组尾部方向前进,不能往回走。

提示:带虚线的词点一下有通俗解释。

输入描述

由正整数组成的数组,以空格分隔,数组长度小于100,请自行解析数据数量。

输出描述

正整数,表示最少的步数,如果不存在输出-1

示例

示例 1

输入

7 5 9 4 2 6 8 3 5 4 3 9

输出

2

说明:第一步: 第一个可选步长选择2,从第一个成员7开始走2步,到达9; 第二步: 从9开始,经过自身数字9对应的9个成员到最后。

示例 2

输入

1 2 3 7 1 5 9 3 2 1

输出

-1

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
7 5 9 4 2 6 8 3 5 4 3 9 0 1 2 3 4 5 6 7 8 9 10 11 第一步:步长2 第二步:走9步 图例: 第一步到达 最后位置 第一步路径 第二步路径
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「找终点」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。