华为OD机试真题 Java 实现【找终点】【2023 B卷 100分】,附详细解题思路

在这里插入图片描述

一、题目描述

给定一个正整数数组,设为nums,最大为100个成员,求从第一个成员开始,正好走到数组最后一个成员,所使用的最少步骤数。

要求:

  1. 第一步必须从第一元素开始,且1 <= 第一步的步长 < len/2,len为数组的长度,需要自行解析;
  2. 第二步开始,只能以所在成员的数字走相应的步数,不能多也不能少,如果目标不可达返回-1,只输出最少的步骤数量;
  3. 只能向数组的尾部走,不能往回走;

二、输入描述

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

三、输出描述

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

四、解题思路

  1. 给定一个正整数数组,设为nums;
  2. 遍历nums,根据题目描述“第一步的步长 < len/2”,因为从0开始,所以循环到nums.length / 2 - 1;
  3. 根据当前index的值,再走n步,循环往复;
    • 比如测试的输入4 2 9 5 3 8 1 5 5 7 2 6 9
    • 第一步为数字4&

你可能感兴趣的:(java,华为,开发语言)