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

news2024/11/16 12:35:35

在这里插入图片描述

一、题目描述

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

要求:

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

二、输入描述

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

三、输出描述

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

四、Java算法源码

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String[] nums = scanner.nextLine().split(" ");

    int len = nums.length;
    int[] arr = new int[len];
    for (int i = 0; i < len; i++) {
        arr[i] = Integer.parseInt(nums[i]);
    }

    int minCount = 0;

    // 第1步最多只能走 len/2,遍历各种情况
    for (int i = 1; i < len / 2; i++) {
        // 走出第一步后的步数和位置
        int count = 1;
        int index = i;

        // 从第2步开始只能以所在成员的数字走相应的步数
        while (true) {
            // 再走一步
            index += arr[index];

            // 步数加1
            count++;

            if (index > len - 1) {
                // 当走的长度超出了范围,说明这种情况不符合要求
                break;
            } else if (index == len - 1) {
                // 刚好走到最后一个成员,更新最小步数
                if (minCount == 0) {
                    minCount = count;
                } else {
                    minCount = Math.min(minCount, count);
                }
                break;
            }
        }
    }

    if (minCount == 0) {
        System.out.println(-1);
    } else {
        System.out.println(minCount);
    }
}

五、效果展示

1、输入:4 8 7 5 2 3 6 4 8 1

2、输出:2

3、说明:

  1. 第一个可选步长选择2;
  2. 从第一个成员4开始走两步到7;
  3. 第二步:从7经过7个成员到最后。

4、思路分析

  1. 1<=第一步步长<len/2 (len为数组长度),需要遍历第一步的各种可能;
  2. 从第二步开始只能以所在成员的数字走相应的步数,不能多不能少;
  3. 只能向数组的尾部走不能向回走;

在这里插入图片描述

🏆本文收录于,华为OD机试2023(Java)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/445977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Algo C++:课程介绍

目录 课程介绍前言1. 课程特色2. 课程前言3. 具备条件4. 预期的收获 课程介绍 前言 手写AI推出的全新面向AI算法的C课程 Algo C&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考。 本次课程主要是课程介绍 课程大纲可看下面的思维导图 1. 课程特色 案例驱动 讲解…

Kubernetes(k8s)

Kubernetes(k8s) 前言 ​ 在学习过程中&#xff0c;我们经常会遇到遗忘的问题。为了避免忘记&#xff0c;多复习是非常必要的。复习可以帮助我们巩固知识&#xff0c;加深记忆&#xff0c;提高学习效率。因此&#xff0c;我们应该养成良好的复习习惯&#xff0c;定期回顾所学…

ai免费写作在线平台-ai免费伪原创文章生成器软件

ai伪原创能检测出来吗 人工智能技术可以检测伪原创&#xff0c;但是不是所有的伪原创都可以被检测出来。 现在有许多自然语言处理&#xff08;NLP&#xff09;算法和技术可以用来检测伪原创内容&#xff0c;例如文本相似度比较算法&#xff0c;语气分析算法等。这些算法可以检…

iptables移植+内核修改

iptables移植&#xff0c;交叉编译后的文件&#xff0c;如果交叉编译工具一致可以直接使用-嵌入式文档类资源-CSDN文库 移植iptables过程中出现一些问题&#xff0c;这里记录一下 Iptables是用户态提供的更改过滤规则的便捷工具&#xff0c;通过使用这个工具&#xff0c;可以…

openEuler-linux下部署zabbix-超级详细

一、准备工作 下载&#xff1a;zabbix包 地址&#xff1a;下载Zabbix 准备2台openEuler-linux虚拟机&#xff1a; linux-1&#xff1a;当服务器端 IP地址&#xff1a;192.168.100.100 修改hosts文件 [rootzbx ~]# vim /etc/hosts 192.168.100.100 zbx.xx.cn linux-2&…

Spring Boot Web请求响应

在上一讲&#xff0c;学习了Spring Boot Web的快速入门以及Web开发的基础知识&#xff0c;包括HTTP协议以及Web服务器Tomcat等内容。基于SpringBoot的方式开发一个web应用&#xff0c;浏览器发起请求 /hello 后 &#xff0c;给浏览器返回字符串 “Hello World ~”。运行启动类启…

【Spring篇】IOC相关内容

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 目录 一、bean基础配置 1.bean基础配置(id与class) 2.bean的name属性 3.bean作用范围scope配置 二、bean实例化 1.构造方法实例化 2.分析Spring的错误信息 3.静态工厂实例化 4.实例工厂 5.FactoryBean 三…

Python爬虫基础-如何获取网页源代码

Python爬虫基础-如何获取网页源代码 网络爬虫(Web Crawler)&#xff0c;又称网页蜘蛛(Web Spider)&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。爬虫程序根据一组特定的规则自动的访问网站&#xff0c;然后抓取网页上的内容&#xff0c;进…

布隆过滤器详解

介绍 本文全部代码地址 布隆过滤器是一种高效的数据结构,用于判断一个元素是否存在于一个集合中.它的主要优点是速度快,空间占用少,因此在需要快速判断某个元素是否在集合中的场合得到广泛引用. 布隆过滤器就是一个大型的位数组和几个不一样的无偏hash函数.所谓无偏就是能够…

boot-admin整合flowable官方editor-app源码进行BPMN2-0建模(续)

书接上回 项目源码仓库github 项目源码仓库gitee boot-admin 是一款采用前后端分离模式、基于SpringCloud微服务架构的SaaS后台管理框架。系统内置基础管理、权限管理、运行管理、定义管理、代码生成器和办公管理6个功能模块&#xff0c;集成分布式事务Seata、工作流引擎Flow…

ARM学习

计算机硬件基础* 文章目录 知识体系嵌入式系统分层应用开发和底层开发Linux内核五大功能ARM体系结构和接口技术底层知识的学习方法计算机基础知识 计算机的进制计算机的组成总线三级存储结构地址空间CPU原理概述 简述为什么地址总线为32bit的处理器的地址空间为4G简述CPU执行…

Java应用的优雅停机

一. 优雅停机的概念 优雅停机一直是一个非常严谨的话题&#xff0c;但由于其仅仅存在于重启、下线这样的部署阶段&#xff0c;导致很多人忽视了它的重要性&#xff0c;但没有它&#xff0c;你永远不能得到一个完整的应用生命周期&#xff0c;永远会对系统的健壮性持怀疑态度。…

面试被经常问的SQL窗口函数

面试题 有一张“学生成绩表”&#xff0c;包含4个字段&#xff1a;班级id、学生id、课程id、成绩。 问题1&#xff1a; 求出每个学生成绩最高的三条记录 问题2&#xff1a; 找出每门课程都高于班级课程平均分的学生 技术提升 技术要学会分享、交流&#xff0c;不建议闭门造…

图像去模糊:MSSNet 模型详解

本内容主要介绍实现单图像去模糊的 MSSNet 模型。 论文&#xff1a;MSSNet: Multi-Scale-Stage Network for Single Image Deblurring 代码&#xff08;官方&#xff09;&#xff1a;https://github.com/kky7/MSSNet 1. 背景 单图像去模糊旨在从模糊图像&#xff08;由相机抖…

ZLMediaKit在Windows上实现Rtmp流媒体服务器以及模拟rtmp推流和http-flv拉流播放

场景 开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放&#xff1a; 开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放_霸道流氓气质的博客-CSDN博客 上面讲…

OJ刷题 第十二篇

21308 - 特殊的三角形 时间限制 : 1 秒 内存限制 : 128 MB 有这样一种特殊的N阶的三角形&#xff0c;当N等于3和4时&#xff0c;矩阵如下&#xff1a; 请输出当为N时的三角形。 输入 输入有多组数据&#xff0c;每行输入一个正整数N&#xff0c;1<N<100 输出 按照给出…

从管理摆脱烦躁:几步打造优秀的仓库管理系统

伴随着物流行业的迅速发展&#xff0c;仓库管理成为了各个供应链环节的重要组成部分。为了更好地管理仓库&#xff0c;节约时间、提高效率&#xff0c;越来越多的企业开始使用仓库管理系统。那么&#xff0c;仓库管理系统是什么&#xff0c;为什么要用它呢&#xff1f;本篇文章…

春秋云境:CVE-2022-25578(文件包含)

目录 一、题目 二、蚁剑连接 一、题目 介绍&#xff1a; taocms v3.0.2允许攻击者通过编辑.htaccess文件执行任意代码 进入题目 访问URL&#xff0c;通过弱口令登录后台&#xff1a;admin/tao 进入后台 点击文件管理&#xff1a; 添加AddType application/x-httpd-php .jpg…

【技术】《Netty》从零开始学netty源码(四十一)之PoolChunk

PoolChunk 我们再回顾以下netty中与内存相关的类&#xff1a; 前面我们已经分析了PoolSubpag&#xff0c;本章我们分析PoolChunk,先看下它的属性值&#xff1a; 为了更好的理解这些属性值&#xff0c;我们结合它的构造函数来理解&#xff0c;具体的源码如下&#xff1a; 其…

网络通信之传输层协议

文章目录 传输层在网络通信中扮演的角色认识TCP协议TCP协议的多种机制确认应答(ACK)机制超时重传机制连接管理机制&#x1f53a;滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常处理 总结 传输层在网络通信中扮演的角色 上图是网络通信中五个模块&#xff…