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

news/2024/7/8 1:06:49

在这里插入图片描述

一、题目描述

给定一个随机的整数(可能存在正整数和负整数)数组 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://lihuaxi.xjx100.cn/news/1251665.html

相关文章

OJ Summation of Four Primes

1.题目 题目描述 Euler proved in one of his classic theorems that prime numbers are infinite in number. But can every number be expressed as a summation of four positive primes? I don’t know the answer. May be you can help!!! I want your solution to be v…

【计算机网络自顶向下】如何学好计网-第四章网络层

第四章 网络层 学习目的&#xff1a; 理解网络层服务的主要原理 网络岑服务模型转发&#xff08;forwarding&#xff09;和路由&#xff08;routing&#xff09;的概念对比路由器的工作原理路由算法及路由协议 完成简单的组网及IP地址和路由配置 4.1 引言 网络层提供的功能…

YOLOV5识别图标点选验证码

本文秉承着一周一更的原则,继续更新ocr的专栏 主题是图标点选验证码,图标点选,相信很多读者阅读过其他的文章,我也大致看了下,用的最多的处理方法就是比较两个图片的相似性,利用哈希感知等机器学习,或者孪生网络,方法虽然不同,但处理思路一致,都是比较图片的相似性,…

OpenCV 笔记_4

文章目录 笔记_4图像细化thinning 图像细化函数 轮廓检测findContours 轮廓检测函数drawContours 轮廓绘制函数contourArea 计算轮廓面积&#xff1a;返回值 double类型arcLength 计算轮廓长度&#xff1a;返回值 double类型 轮廓外接多边形boundingRect 给定轮廓的外接矩形min…

深度学习实战38-基于清华ChatGLM-6b开源模型做体检报告解读任务,让体检报告解读变得轻松

大家好,我是微学AI,今天给大家介绍一下深度学习实战38-基于清华ChatGLM-6b开源模型做体检报告解读任务,让体检报告解读变得轻松。ChatGLM-6b是清华大学团队开源的一个语言大模型。本文将介绍一种基于ChatGLM-6B的体检报告智能解读应用项目。首先,我们将讨论体检报告解读的背…

Scala--04

第 8 章 高级语法 Scala//需求&#xff1a;制作一个计算器&#xff0c;实现你传一个字符串给我&#xff0c;比如 23&#xff0c;然后我返回一个结果5给你 def plus(str: String): String { var res "" if (str.contains("")) { val arr: Array[S…

【Let‘s make it big】英语学习合集1~10

1 get the credit 获得赏识 I’m not sad I’m upset I can’t stand him I’m into doing 期待做什么 I’m not sure which idea is the no.1 idea settle down I’m gonna tell you the truth That’s what I learned that 2 can’t seem to find it takes time 3 money…

阿里云服务器提供哪些操作系统和软件支持?是否与常用软件兼容?

阿里云服务器提供哪些操作系统和软件支持&#xff1f;是否与常用软件兼容&#xff1f;    阿里云服务器支持的操作系统   为了满足不同用户需求&#xff0c;阿里云服务器&#xff08;ECS&#xff09;提供了丰富的操作系统选择。以下是阿里云服务器支持的主要操作系统&#…