华为OD机试真题——找终点(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

article/2025/8/29 7:30:35

在这里插入图片描述

2025 A卷 100分 题型

本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式;
并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析;
本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分享》

华为OD机试真题《找终点》:


文章快捷目录

题目描述及说明

Java

python

JavaScript

C

GO


题目名称:找终点


  1. 知识点:动态规划、贪心算法
  2. 时间限制:1秒
  3. 空间限制:256MB
  4. 限定语言:不限

题目描述

给定一个正整数数组 nums(长度 ≤100),从第一个元素开始,按照以下规则移动到数组最后一个元素,求最少步数。若无法到达,返回 -1

规则

  1. 第一步必须从 nums[0] 开始,且步长 k 满足 1 ≤ k < len/2len 为数组长度)。
  2. 从第二步开始,每一步的步长由当前所在位置的元素值决定(即移动到 nums[current_index] 的位置)。
  3. 只能向数组尾部移动,不能回头。
  4. 若最终恰好到达最后一个元素,则返回步数;否则返回 -1

输入描述

  • 一行由空格分隔的正整数,表示数组 nums

输出描述

  • 一个整数,表示最少步数;若无法到达,输出 -1

示例1
输入:

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

输出:

2  

解释:

  • 第一步选择步长 27 → 9),第二步从 99 步到达终点。

示例2
输入:

1 2 3 7 1 5 9 3 2 1  

输出:

-1  

解释:

  • 无法通过任何第一步步长组合到达终点。

Java

问题分析

我们需要从数组的第一个元素出发,按照特定规则跳跃到最后一个元素。规则要求第一步的步长必须在特定范围内,后续步长由当前元素值决定。目标是找到到达终点的最少步数,若无法到达则返回-1。


解题思路

  1. 第一步范围限制:第一步的步长k必须满足 1 ≤ k < len/2,其中 len 是数组长度。
  2. 模拟跳跃过程:对每个可能的初始步长k进行模拟,计算是否可达终点及所需步数。
  3. 动态更新最优解:记录所有可行路径中的最小步数,若没有可行路径则返回-1。

代码实现

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String[] input = scanner.nextLine().split(" ");int[] nums = new int[input.length];for (int i = 0; i < input.length; i++) {nums[i] = Integer.parseInt(input[i]);}System.out.println(findMinSteps(nums));}private static int findMinSteps(int[] nums) {int len = nums.length;if (len <= 1) { // 数组长度不足,无法跳跃return -1;}int maxK = (len - 1) / 2; // 计算最大初始步长if (maxK < 1) { // 初始步长范围无效return -1;}int minSteps = Integer.MAX_VALUE; // 记录最小步数for (int k = 1; k <= maxK; k++) { // 枚举所有可能的初始步长int current = k; // 初始位置int steps = 1; // 初始步数if (current == len - 1) { // 直接到达终点minSteps = Math.min(minSteps, steps);continue;}boolean reachable = false;while (current < len - 1) { // 未到达终点时继续跳跃int jump = nums[current]; // 获取当前元素的步长current += jump; // 跳跃到新位置steps++; // 步数增加if (current == len - 1) { // 到达终点reachable = true;break;} else if (current > len - 1) { // 越界,无法到达break;}}if (reachable) { // 更新最小步数minSteps = Math.min(minSteps, steps);}}return (minSteps == Integer.MAX_VALUE) ? -1 : minSteps;}
}

代码详解

  1. 输入处理

    • 读取输入字符串并分割为整数数组 nums
  2. 边界条件处理

    • 数组长度小于等于1时直接返回-1。
    • 计算最大初始步长 maxK = (len - 1) / 2
  3. 枚举初始步长

    • 遍历所有可能的初始步长 k(1到maxK)。
  4. 模拟跳跃过程

    • 从初始位置 current = k 开始,记录步数 steps = 1
    • 若初始位置即为终点,直接更新最小步数。
    • 循环中根据当前元素值跳跃,更新位置和步数。
    • 若到达终点,标记为可行路径并更新最小步数;若越界则终止。
  5. 返回结果

    • 若存在可行路径返回最小步数,否则返回-1。

示例测试

示例1
输入:

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

输出:

2

解析:

  • 初始步长k=2,跳跃到索引2(元素9),再跳9步到达终点,共2步。

示例2
输入:

1 2 3 7 1 5 9 3 2 1

输出:

-1

解析:

  • 所有初始步长的跳跃路径均无法到达终点。

示例3
输入:

3 1 1

输出:

2

解析:

  • 初始步长k=1

http://www.hkcw.cn/article/MsPiEdyZta.shtml

相关文章

电路图识图基础知识-电路接线图(八)

识读电路接线图常识 1 电路接线图与电气原理图之间的关系 电气接线图是表示电气设备、元器件或装置等项目之间的连接关系&#xff0c;用来进行安装接线、 线路检查、线路检修和故障处理的一种简图。 在绘制电路接线图时必须依据相应的电气原理图&#xff0c;电路接线后必须达到…

基于python脚本进行Maxwell自动化仿真

本文为博主进行Maxwell自动化研究过程的学习记录&#xff0c;同时对Maxwell自动化脚本&#xff08;pythonIron&#xff09;实现方法进行分享。 文章目录 脚本使用方法脚本录制与查看常用脚本代码通用开头定义项目调整设计变量软件内对应位置脚本 设置求解器软件内对应位置脚本…

车载通信网络 --- CAN FD与CAN XL

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

Shell 脚本基础笔记

一 shell脚本概述 Shell 脚本是一种用 Shell 命令编写的脚本程序&#xff0c;用于在 Unix/Linux 系统的命令行环境中自动化执行任务。 它由一系列命令、逻辑控制语句&#xff08;如条件判断、循环&#xff09;和函数组成&#xff0c;保存为文本文件&#xff08;通常以 .sh 为扩…

sudo apt-get update错误解决

1.尝试sudo apt-get update发现很多无法命中且报错 首先使用 sudo vi /etc/resolv.conf 进入该文件后 代码如下&#xff1a; nameserver 8.8.4.4 nameserver 8.8.8.8然后按两次esc键&#xff0c;然后输入&#xff1a;wq 先输入 &#xff08;&#xff1a;&#xff09;再输…

管程机制 基本讲解

管程定义 构成要素&#xff1a;管程定义了一个数据结构&#xff0c;以及能为并发进程在该数据结构上执行的一组操作。 数据结构&#xff1a;例如在多进程共享资源场景中&#xff0c;可代表共享资源状态的变量集合&#xff0c;像共享文件读写状态、共享缓冲区占用情况等。一组操…

c#基础09(类与对象)

文章目录 类与对象面向对象概念封装访问修饰符 类如何定义类字段与属性 类的对象构造方法this关键字 类与对象 面向对象概念 并不是一个技术&#xff0c;而是一种编程指导思想。把现实世界的具体事物全部看出一个一个的对象来解决实际问题。 面向对象编程共同三大特性&#…

ai工具集:AI材料星ppt生成,让你的演示更出彩

在当今快节奏的工作环境中&#xff0c;制作一份专业、美观的 PPT 是展示工作成果、传递信息的重要方式。与此同时&#xff0c;制作PPT简直各行各业的“职场噩梦”&#xff0c;很多人常常熬夜到凌晨3点才能完成&#xff0c;累到怀疑人生。 现在&#xff1f;完全不一样了&#x…

高速连接器设计的真相

在高速连接器设计领域&#xff0c;有两种相反的想法。对于某些人来说&#xff0c;如果你简单地将塑料和金属碎片放在一起&#xff0c;最终你会得到信号传输。这个过程非常简单。另一方面&#xff0c;有一种观点认为&#xff0c;可靠的连接器设计需要对电磁理论有深入的理解&…

计算机视觉---YOLOv4

YOLOv4&#xff08;You Only Look Once v4&#xff09;于2020年由Alexey Bochkovskiy等人提出&#xff0c;是YOLO系列的重要里程碑。它在YOLOv3的基础上整合了当时最先进的计算机视觉技术&#xff0c;实现了检测速度与精度的显著提升。以下从主干网络、颈部网络、头部检测、训练…

IP地址交换如何让车联网效率翻倍?

在车辆移动过程中实现稳定可靠的网络连接&#xff0c;是智能交通系统发展的关键技术之一。车辆行动通讯网络&#xff08;VANET&#xff09;通过车载设备和路边基础设施的配合&#xff0c;使车辆在行驶中能够接入互联网。要实现这一目标&#xff0c;每辆车都需要获得唯一的IP地址…

DexWild:野外机器人策略的灵巧人机交互

25年5月来自 CMU 的论文“DexWild: Dexterous Human Interactions for In-the-Wild Robot Policies”。 大规模、多样化的机器人数据集已成为将灵巧操作策略泛化到新环境的一条有效途径&#xff0c;但获取此类数据集面临诸多挑战。虽然遥操作可以提供高保真度的数据集&#xf…

大连格恩朗椭圆齿轮流量计:工业流量测量的精密刻度尺

在工业生产的庞大脉络中&#xff0c;流体流量的精准测量如同心脏监测仪之于人体&#xff0c;细微偏差可能导致整个系统的失衡。大连格恩朗椭圆齿轮流量计以**0.5%的精度**&#xff08;部分型号达0.2%&#xff09;成为工业流量领域的“精密刻度尺”&#xff0c;其核心原理如同一…

【NebulaGraph】查询案例(七)

【NebulaGraph】查询案例 七 1. 查询语句12. 查询语句23. 查询语句34. 查询语句4 1. 查询语句1 GO FROM "player100" OVER * YIELD type(edge) AS link, properties($$) AS properties,tostring(src(edge)) AS src,tostring(dst(edge)) AS dst, tags($$) AS tagLi…

database disk image is malformed 的解决方法

Sqlite数据库在执行时报错&#xff1a;database disk image is malformed 解决方法: 1.重启电脑试下&#xff0c;或者重启服务试下 2.重新创建新的表&#xff0c;读出正确的部分的数据结构及数据 (1)命令行中定位到数据表的路径下&#xff1b; &#xff08;2&#xff09;执行如…

机动车结构化检测算法AI智能分析网关V4打造全场景应用解决方案

一、方案概述​ 随着交通管理智能化发展&#xff0c;精准高效的机动车信息检测需求迫切。AI智能分析网关V4基于深度学习与计算机视觉技术&#xff0c;具备强大的机动车结构化检测能力&#xff0c;可快速提取车辆关键信息&#xff0c;赋能交通管理与安防监控。本方案将围绕其技…

认识多系统萎缩:一种隐匿进展的神经退行性问题

多系统萎缩是一种罕见的神经退行性疾病&#xff0c;起病隐匿且呈进行性发展&#xff0c;平均发病年龄约 50 岁&#xff0c;男性略多于女性。 该疾病主要影响中枢神经系统多个部位&#xff0c;包括锥体外系、小脑、自主神经系统等。根据主要症状差异&#xff0c;可分为不同亚型&…

UE5蓝图中播放背景音乐和使用代码播放声音

UE5蓝图中播放背景音乐 1.创建背景音乐Cube 2.勾选looping 循环播放背景音乐 3.在关卡蓝图中 Event BeginPlay-PlaySound2D Sound选择自己创建的Bgm_Cube 蓝图播放声音方法二&#xff1a; 使用代码播放声音方法一 .h文件中 头文件引用 #include "Kismet/GameplayS…

【C语言极简自学笔记】项目开发——扫雷游戏

一、项目概述 1.项目背景 扫雷是一款经典的益智游戏&#xff0c;由于它简单而富有挑战性的玩法深受人们喜爱。在 C 语言学习过程中&#xff0c;开发扫雷游戏是一个非常合适的实践项目&#xff0c;它能够综合运用 C 语言的多种基础知识&#xff0c;如数组、函数、循环、条件判…

职业本科院校无人机专业人才培养解决方案

2023年的中央经济工作会议强调了以科技创新推动现代化产业体系构建的重要性&#xff0c;并提出发展生物制造、商业航天、低空经济等战略性新兴产业。低空经济&#xff0c;依托民用无人机等低空飞行器&#xff0c;在多场景低空飞行活动的牵引下&#xff0c;正逐步形成一个辐射广…