华为OD机试真题(Java),最小步骤数(100%通过+复盘思路)

在这里插入图片描述

一、题目描述

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

要求:

  1. 第一步 必须从第一元素起 且 1<=第一步步长
  2. 从第二步开始只能以所在成员的数字走相应的步数,不能多不能少, 如果目标不可达返回-1, 只输出最小的步骤数量;
  3. 只能向数组的尾部走不能向回走。

二、输入描述

有正整数数组空格分割,数组长度<100。

三、输出描述

正整数 最小步数,不存在输出-1。

四、解题思路

题目要求计算从第一个成员开始正好走到数组最后一个成员所使用的最小步骤数。

步骤要求如下:

  1. 第一步必须从第一个元素起,步长范围为 [1, len/2),其中 len 为数组长度;
  2. 从第二步开始,只能以当前成员的数字作为步数走,不能多也不能少;
  3. 目标不可达时返回 -1,只输出最小的步骤数量;
  4. 只能向数组的尾部走,不能向回走。

具体解题思路如下:

  1. 读取输入的正整数数组;
  2. 初始化数组长度为 len,转换为整型数组 arr;<

你可能感兴趣的:(java,算法,华为机试)