华为OD机试真题B卷 JavaScript 实现【乱序整数序列两数之和绝对值最小】,附详细解题思路

news2024/12/23 0:32:27

在这里插入图片描述

一、题目描述

给定一个随机的整数(可能存在正整数和负整数)数组 nums,请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值,并返回这个两个数(按从小到大返回)以及绝对值。

每种输入只会对应一个答案。

但是,数组中同一个元素不能使用两遍。

二、输入描述

一个通过空格分割的有序整数序列字符串,最多1000个整数,且整数数值范围是 [-65535, 65535]。

三、输出描述

两数之和绝对值最小值。

四、解题思路

  1. 定义变量 sum 初始化为 65535*2,用于保存当前最小的绝对值和;
  2. 定义数组 arr,长度为 2,用于保存找到的两个数的索引;
  3. 对 nums 进行升序排序;
  4. 使用两层循环遍历 nums,对于每对不同的元素 nums[i] 和 nums[j](i < j):
    • 计算它们的和的绝对值 temp = |nums[i] + nums[j]|
    • 如果 temp <= sum,则更新 sum = temp,并将当前索引 i 和 j 存入数组 arr。
  5. 输出结果,即 list[arr[0]]、list[arr[1]] 和 sum。

五、JavaScript算法源码

function findMin(nums) {
    // 用于保存当前最小的绝对值和
    let sum = 65535 * 2;
    // 保存找到的两个数的索引
    let arr = [0, 0];

    // 排序
    nums.sort((a, b) => a - b);

    for (let i = 0; i < nums.length; i++) {
        for (let j = i + 1; j < nums.length; j++) {
            // 计算绝对值
            const temp = Math.abs(nums[i] + nums[j]);
            if (temp <= sum) {
                // 更新 sum = temp
                sum = temp;
                // 将当前索引 i 和 j 存入数组 arr
                arr[0] = nums[i];
                arr[1] = nums[j];
            }
        }
    }

    return [arr[0], arr[1], sum];
}

六、效果展示

1、输入

[5,-4,8,-9,10,12]

2、输出

-4,5,1

3、说明

在这里插入图片描述


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

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

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

在这里插入图片描述

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

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

相关文章

Android 行业就业难! 我是否该负重前行~

不知从何时开始&#xff0c;互联网市场岗位开始以收缩趋势进行发展&#xff0c;使得不少互联网行业的从业者面临者工作难找的难题&#xff0c;对于我们开发人群来说很不友好。 以前可以靠着跳槽实现涨薪梦&#xff0c;而如今是能不动就不动&#xff0c;能稳住是最好。 为什么这…

Docker——安装MySQL

一、安装并拉取MySQL镜像 先把docker启动起来 systemctl restart docker systemctl status docker 安装MySQL docker search mysql拉取镜像&#xff0c; 如果拉取不成功或者显示超时&#xff0c;可以去配置加速镜像源。 二、查看本地镜像并启动MySQL 但是光有镜像没有把镜像…

Redis面试之数据类型及底层原理

废话不多说直接上类型 string&#xff08;字符串&#xff09; hash&#xff08;哈希&#xff09; list&#xff08;列表&#xff09; set&#xff08;集合&#xff09; zset&#xff08;有序集合&#xff09; stream&#xff08;流&#xff09; geospatial&#xff08;地…

CRM软件有哪些?这9款值得推荐

业内有一句流传已久的话&#xff1a;你的左手不知道你的右手在做什么。同一个企业内部&#xff0c;不同部门之间往往存在信息不同步&#xff0c;数据不对称的情况&#xff0c;比如销售和营销部门关于某个市场活动所带来的效果产生分歧。CRM软件的存在就可以解决这类问题。 在正…

实验4 Cache性能分析【计算机系统结构】

实验4 Cache性能分析【计算机系统结构】 前言推荐实验四 Cache性能分析1 实验目的2 实验平台3 实验内容和步骤3.1 Cache容量对不命中率的影响3.2 相联度对不命中率的影响3.3 Cache块大小对不命中率的影响3.4 替换算法对不命中率的影响 4 实验总结与心得5 请思考 最后 前言 202…

8年测试工程师分享,我是怎么开展性能测试的(基础篇)

第一节 测试的一般步骤 性能测试的工作是基于系统功能已经完备或者已经趋于完备之上的&#xff0c;在功能还不够完备的情况下没有多大的意义&#xff08;后期功能完善上会对系统的性能有影响&#xff0c;过早进入性能测试会出现测试结果不准确、浪费测试资源&#xff09;&…

足不出户怎么在家赚钱,暑假在家别闲着,给自己赚点生活费吧

在当今快节奏的现代生活中&#xff0c;人们面临着越来越大的竞争压力。为了过上舒适的生活、提前退休、创业或增加收入&#xff0c;许多人都希望能够在家中赚钱。那么&#xff0c;在家里如何可以找到赚钱的项目呢&#xff1f;本文将为您详细介绍一些方法。 一、在家工作有很多好…

《计算之魂》读书笔记——第2章,从递推到递归

我们人类的固有思维方式常常是出于直观的&#xff0c;由近及远、从少到多&#xff0c;这样的思维方式让我们很容易理解具体的事物&#xff0c;却也限制了我们的抽象思维&#xff0c;所以当我们理解远离我们生活经验的事物时&#xff0c;就容易出现障碍。我们人类这种自底向上、…

调用万维易源实现天气预测

作者介绍 房庚晨&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;22级研究生 研究方向&#xff1a;机器视觉与人工智能 电子邮件&#xff1a;1292475736qq.com 王泽宇&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2022级研究生&#xff0…

easyui03(tree后台工作)

一.数据库脚本 create table TB_MODULE ( id NUMBER not null, pid NUMBER not null, text VARCHAR2(150) not null, iconcls VARCHAR2(100) not null, url VARCHAR2(100), sort NUMBER not null ) insert into TB_MODULE (id, pid, text, icon…

Android音视频开发实战01-环境搭建

一,FFmpeg介绍 FFmpeg 是一款流行的开源多媒体处理工具&#xff0c;它可以用于转换、编辑、录制和流式传输音视频文件。FFmpeg 具有广泛的应用场景&#xff0c;包括视频编解码、格式转换、裁剪、合并、滤镜等等。官网:https://ffmpeg.org/ FFmpeg 支持各种常见的音视频格式&a…

设置论文中的图、表的题注(小记)

参考b站&#xff1a;毕业论文图表如何自动编号/word图表自动编号/图表编号自动更新 其中&#xff0c;更新图表序号 视频使用ctrlp进入打印再退出&#xff0c;也可以使用altf9进行更新 设置论文中的图、表的题注 step1:设置章节1.1 章节设置字体样式&#xff0c;选择标题11.2 章…

中国人民大学与加拿大女王大学金融硕士项目就像一束光,照亮你的春夏秋冬

不要因为看到别人发光&#xff0c;就默认自己的暗淡。每个人都有自己的闪光时刻&#xff0c;或早或晚。只要努力奋进&#xff0c;你也会拥有。针对金融行业计划在职的人员来说&#xff0c;中国人民大学与加拿大女王大学金融硕士项目就像一束光&#xff0c;照亮了我们的春夏秋冬…

赋能全栈软件,开源软件协调,我对英特尔有了全新认知

文章目录 一、前言二、培养开源文化三、现场展区体验四、软硬协同分论坛&#xff0c;和社区开发者共建生态五、快来加入开源社区吧 一、前言 “开源赋能 普惠未来”&#xff0c;2023 年 6 月 11 日到 13 日&#xff0c;我有幸参加了 2023 开放原子全球开源峰会。 “赋能中国软…

数据结构算法刷题(28)回溯组合型和全排列

剪枝技巧&#xff1a; 思路&#xff1a;剪枝的特点是找特定长度的子集。首先确定大框架&#xff0c;当path的长度等于k的时候&#xff0c;就要更新答案并且return。然后在进行path的元素选择&#xff0c;这里采用倒叙&#xff0c;从i到d&#xff08;dk-len(path)&#xff09;倒…

MySQL——视图(VIEW)详解

今天我们一起来学起视图(VIEW)&#xff0c;那么视图是什么呢&#xff1f;视图有什么作用呢&#xff1f;视图一方面可以帮我们使用表的一部分而不是所有的表&#xff0c;另一方面也可以针对不同的用户制定不同的查询视图&#xff01;带着问题一起来寻找答案吧~~~ 1. 常见的数据库…

【实验】语音识别

为学校数字信号处理实验总结和归纳&#xff1b; 语音识别 题目及相关要求在here. 数据预处理 大致步骤&#xff1a; 获取原始音频 检测 分帧 加窗 特征提取 端点检测 端点检测参数指标相对值初始短时能量高门限50初始短时能量低门限10初始短时过零率高门限10初始短时过零率低…

Web网页制作期末复习(1)——HTML5介绍、HTML5的DOCTYPE声明、HTML基本骨架、标题标签、段落 换行、水平线图片图片路径、超链接

目录 HTML5介绍 HTML5的DOCTYPE声明 HTML基本骨架 标题标签 段落、换行、水平线 图片 图片路径* 超链接 HTML5介绍 HTML5是用来描述网页的一种语言&#xff0c;被称为超文本标记语言。用HTML5编写的文件&#xff0c;后缀以.html结尾 HTML是一种标记语言&#xff0c;标…

在提交代码时有哪些注意事项

分享 10 种适合初学者的技术&#xff0c;这些技术将帮助您立即编写更好的代码。因此&#xff0c;如果您准备好将您的编码技能提升到一个新的水平&#xff0c;请继续阅读&#xff01; 1. 从计划开始 编写更好代码的最佳方法之一是从计划开始。在开始编码之前&#xff0c;请花几…

SQL详细处理流程.md

连接器&#xff1a;管理连接&#xff0c;权限验证解析器&#xff1a;词法以及语法分析优化器&#xff1a;生成执行计划&#xff0c;选择合适索引执行器&#xff1a;操作引擎获取结果存储引擎&#xff1a;存储数据&#xff0c;提供读写接口