华为OD机试真题 JavaScript 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

news2024/11/25 0:35:12

在这里插入图片描述

一、题目描述

跳房子,也叫跳飞机,是一种世界性的儿童游戏。

游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格,然后获得一次选房子的机会,直到所有房子都被选完,房子最多的人获胜。

跳房子的过程中,如果有踩线等违规行为会结束当前回合,甚至可能倒退几步。

假设房子的总格数是count,小红每回合可能连续跳的步数都放在数据steps中,请问数组中是否有一种步数的组合,可以让小红三个回合跳到最后一格?如果有,请输出索引和最小的步数组合,数据保证索引和最小的步数组合是唯一的。

注意:数组中的步数可以重复,但数组中的元素不能重复使用。

二、输入描述

第一行输入为房子总格数count,它是整数类型int。

第二行输入为每回合可能连续跳过的步数,它是整数数组类型。

三、输出描述

返回索引和最小满足要求的步数组合。

注意:顺序保持steps中的原有顺序。

四、补充说明

  • count <= 10000;
  • 3 <= steps.length <= 10000;
  • -100000 <= steps[i] <= 100000;

五、解题思路

这道题的【题目描述】优点复杂,说的也不是很清晰。

简而言之,就是:

第一行输入一个数count;

第二行输入若干个数steps;

将第二行中的数字,以任意组合的方式(保证三个回合跳到最后一格),等于count即可,看看一共有多少种,然后选出索引和最小的那一组数据,按顺序输出即可

万丈高楼平地起,稳扎稳打,先理清思路,找准方向,再动手。

  1. 输入房子总格数count;
  2. 输入每回合可能连续跳过的步数;
  3. 递归选出索引和最小的那一组数据;
    • 遍历steps数组中的数字,每三个数字进行依次递归;
    • 如果不满足条件,将第三个数字删除,再添加一个新的数字;
    • 再比较小红跳的步数集合是否等于count;
    • 循环往复
  4. 小红跳的步数集合等于count 且 选出索引和最小的那一组数据;
  5. 返回索引和最小满足要求的步数组合;

六、JavaScript算法源码

let min = 100000; // 最小索引和
const three = 3; // 三个回合跳到最后一格
let count; // 房子总格数count
let minIndexList; // 选出索引和最小的那一组数据

function calculate(count, steps) {
    getMinSteps(count, steps, three, [], [], 0);
    return minIndexList;
}

function getMinSteps(count, steps, step, list, indexList, index) {
    // 三个回合跳到最后一格
    if (step === 0) {
        let total = 0;
        let indexTotal = 0;
        // 三个回合跳到最后一格
        for (let i = 0; i < three; i++) {
            total += list[i];
            // 计算索引和
            indexTotal += indexList[i];
        }

        // 小红跳的步数集合等于count 且 选出索引和最小的那一组数据
        if (total === count && indexTotal < min) {
            min = indexTotal;
            minIndexList = [...list];
            // 打印符合要求的小红跳的步数集合和下角标之和
            console.log("符合要求的小红跳的步数集合:" + list);
            console.log("下角标之和:" + indexTotal);
        }
    } else {
        // 遍历steps数组
        for (let i = index; i < steps.length; i++) {
            // 小红跳的步数集合
            list.push(steps[i]);
            // 小红跳的步数的索引集合
            indexList.push(i);
            // 选出索引和最小的那一组数据
            getMinSteps(count, steps, step - 1, list, indexList, i + 1);
            // 遍历steps数组中的数字,每三个数字进行依次递归,如果不满足条件,将第三个数字删除,再添加一个新的数字,再比较小红跳的步数集合是否等于count,循环往复
            list.pop();
            indexList.pop();
        }
    }
}

七、效果展示

1、输入

15
1,9,4,25,10,8,7,5

2、输出

[1, 4, 10]

3、说明

符合条件的步数集合有

[1, 9, 5]

它的下角标之和为:0 + 1 + 7 = 8

[1, 4, 10]

它的下角标之和为:0 + 2 + 4 = 6

因为 6<8,故输出[1, 4, 10]。

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

XGBoost超参数调优指南

本文将详细解释XGBoost中十个最常用超参数的介绍&#xff0c;功能和值范围&#xff0c;及如何使用Optuna进行超参数调优。 对于XGBoost来说&#xff0c;默认的超参数是可以正常运行的&#xff0c;但是如果你想获得最佳的效果&#xff0c;那么就需要自行调整一些超参数来匹配你的…

jupyter lab升级或者安装插件后编译失败

错误回显 报错提示&#xff1a;please run ‘jupyter lab build’ on the server for full output&#xff0c;那么就进入prompt执行一下jupyter lab build 继续接着报错 If you dont already have a jupyter_config.py file, you can create one by adding a blank file of th…

线下实体衰落,真是电商惹祸?实是贪婪以及服务理念落后所致

网上时不时就有人指责电商的兴起导致了线下实体衰落&#xff0c;然而如果各位比较了线下实体与电商的差异&#xff0c;就会明白导致如此结果完全是咎由自取&#xff0c;因为线下实体太贪婪以及服务理念落后于时代。 笔者最近就购买了某款国产手机&#xff0c;在该国产手机品牌的…

集显独显并存,ubuntu安装显卡驱动的坑

一、安装和启动黑屏卡死 1、怎么办&#xff1f;显示器先接集显&#xff0c;完成驱动安装。 &#xff08;1&#xff09;屏蔽nouveau驱动 只要是安装过NVIDIA显卡驱动的&#xff0c;nouveau一般都被禁止了。可以通过命令&#xff1a; lsmod | grep nouveau 查看。如果没有任…

实现设备的延时控制

1. 引言 当搭建IoT管理后台后&#xff0c;APP、设备、云端三端就可以实现交互&#xff1b;当点击APP中的控制按钮&#xff0c;其控制指令就可以经过云端转发到设备执行&#xff0c;当设备执行后将设备的状态上报到云端&#xff0c;APP通过轮训可以取到设备此时的状态&#xff0…

Spring Boot 优雅集成 Spring Security 5.7(安全框架)

Spring Boot 集成 Spring Security &#xff08;安全框架&#xff09; 本章节将介绍 Spring Boot 集成 Spring Security 5.7&#xff08;安全框架&#xff09;。 &#x1f916; Spring Boot 2.x 实践案例&#xff08;代码仓库&#xff09; 介绍 Spring Security 是一个能够为基…

为行业变革注入新动能,行易道入选“高工智能汽车智驾榜单”

6月8日到9日&#xff0c;2023高工智能汽车开发者大会在上海成功举行。与会期间&#xff0c;北京行易道科技有限公司&#xff08;以下简称“行易道”&#xff09;营销副总裁袁泽雁带来了以“车载毫米波雷达进入成像时代”主题演讲&#xff0c;为大家分享了4D毫米波雷达如何以“新…

Java网络开发(Tomcat异步分页+增删改查)——从同步到异步 从jsp 到 js + axios + vue 实现 数据分页显示 数据增删改查

目录 引出一些固定的东西1.固定的响应格式2.name 变成 v-model 进行双向绑定3.下拉框选中--:value"type.id" v-model"companyDb.typeId"4.vue导包固定写法5.script固定写法6.axios的get请求7.axios的post请求---let params new URLSearchParams()8.前端美…

MYSQL 在优化器缺陷在次验证,与MYSQL 熄火了 还是 成熟了??

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

聊聊我做 NeRF-3D重建性能优化经历

我们新推出大淘宝技术年度特刊《长期主义&#xff0c;往往从一些小事开始——工程师成长总结专题》&#xff0c;专题收录多位工程师真诚的心路历程与经验思考&#xff0c;覆盖终端、服务端、数据算法、技术质量等7大技术领域&#xff0c;欢迎一起沟通交流。 本文为此系列第四篇…

飞桨携手第二届GitLink开源夏令营,邀你参与顶尖开源项目!

想参与顶尖开源项目开发&#xff1f; 想熟悉开源社区参与流程&#xff1f; 想获得资深导师指导和丰厚现金奖励&#xff1f; 机会来啦&#xff01; 2016年9月&#xff0c;飞桨框架正式开源&#xff0c;其兼备易用性、高效性、灵活性和可扩展性等特点。如今&#xff0c;百度飞桨在…

软件工程:说透软件5种常见的部署策略

hi&#xff0c;我是熵减&#xff0c;见字如面。 在软件工程中&#xff0c;最终的价值交付&#xff0c;都是要通过软件的部署上线来完成的。 那如何将新的或改进的软件功能交付给用户&#xff0c;同时还要确保高质量、稳定性和用户体验&#xff0c;选择适当的部署策略变得至关重…

数字中国,开鸿见日

讲个小故事&#xff0c;《晋书乐广传》记载&#xff0c;西晋名士乐广&#xff0c;请大文学家潘岳替自己写一篇文章。潘岳让乐广把意思完完整整告诉他&#xff0c;再由他来动笔&#xff0c;最终写成了名扬当时的《呈太尉辞河南尹表》。时人看过这篇文章&#xff0c;评价乐广是“…

WPF开发txt阅读器5:书籍管理系统,文件夹对话框

文章目录 书柜类文件夹对话框验证 txt阅读器系列&#xff1a; 需求分析和文件读写目录提取类&#x1f48e;列表控件与目录字体控件绑定 书柜类 任何小说阅读器&#xff0c;都免不了要有一个书架功能&#xff0c;而所谓书架&#xff0c;其实就是一个文件夹&#xff0c;通过对…

postgre查询今天,昨天的数据

昨天数据 SELECT* FROMsys_device WHERE age(current_date,to_timestamp(substring(update_time FROM 1 FOR 10),yyyy-MM-dd)) 1 days; 今天数据 SELECT* FROMsys_device WHERE to_char(update_time:: DATE, yyyy-MM-DD hh 24: mi :s) to_char(CURRENT_DATE:: DATE, …

nodejs+vue+mysql汽车新闻资讯网站jtw43

本汽车资讯网站有管理员和用户。管理员功能有个人中心&#xff0c;用户管理&#xff0c;汽车品牌管理&#xff0c;价格分类管理&#xff0c;经销商管理&#xff0c;汽车信息管理&#xff0c;留言板管理&#xff0c;系统管理等。用户可以查看各种汽车信息&#xff0c;还可以进行…

无人机上仅使用CPU实时运行Yolov5(OpenVINO实现)(上篇)

Intel CPU在运行视觉导航等算法时实时性要优于Nvidia等平台&#xff0c;如Jetson Tx2&#xff0c;NX。而Nvidia平台在运行深度学习算法方面具有很大优势&#xff0c;两种平台各有利弊。但是&#xff0c;Intel OpenVINO的推出允许NUC平台实时运行深度学习模型&#xff0c;如目前…

Zookeeper 3.5.7

文章目录 1、Zookeeper 入门1.1 概述1.2 特点1.3 数据结构1.4 应用场景 2、本地安装2.1 本地模式安装2.2 配置参数解读 3、集群操作3.1 集群操作3.1.1 集群安装3.1.2 选举机制&#xff08;面试重点&#xff09;3.1.3 集群启停脚本 3.2 客户端命令行操作3.2.1 命令行语法3.2.2 z…

你没见过的黑科技,真会玩

很久之前分享过谷歌浏览器那些有趣的隐藏功能 &#xff0c;今天再分享几个浏览器黑科技。 第一个是这个项目https://github.com/zserge/awfice &#xff0c;利用data URI浏览器也可以当编辑器&#xff0c;输入data:text/html,<body contenteditable styleline-height:1.5;fo…