整数对最小和 - 华为OD统一考试

news2024/9/21 12:33:11

OD统一考试(C卷)

分值: 100分

题解: Java / Python / C++

alt

题目描述

给定两个整数数组array1、array2,数组元素按升序排列。

假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。

注意:两对元素如果对应于array1、array2中的两个下标均相同,则视为同一对元素。

输入描述

输入两行数组array1、array2,每行首个数字为数组大小size(0 < size <= 100);

0 <array1[i] <=1000

0 <array2[i] <= 1000

接下来一行为正整数 k

0 < k <= array1.size() * array2.size()

输出描述

满足要求的最小和

示例1

输入:
3 1 1 2
3 1 2 3
2

输出:
4

说明:
用例中,需要取2对元素
取第一个数组第0个元素与第二个数组第0个元素组成1对元素[1,1];
取第一个数组第1个元素与第二个数组第0个元素组成1对元素[1,1];
求和为1+1+1+1=4,为满足要求的最小和

题解

数据量很小, 直接暴力枚举所有的数对,然后对数对和排序,取前 k 个最小的数对求和即为答案。

Java

import java.util.Arrays;
import java.util.Scanner;
/**
 * @author code5bug
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 读取第一个数组
        int[] array1 = Arrays.stream(scanner.nextLine().split(" "))
                .mapToInt(Integer::parseInt).toArray();

        // 读取第二个数组
        int[] array2 = Arrays.stream(scanner.nextLine().split(" "))
                .mapToInt(Integer::parseInt).toArray();

        // 读取 k
        int k = scanner.nextInt();

        // 枚举所有的数对元素和,存入 t 中,并排序
        int[] t = new int[array1[0] * array2[0]];
        int index = 0;
        for (int i = 1; i < array1.length; i++) {
            for (int j = 1; j < array2.length; j++) {
                t[index++] = array1[i] + array2[j];
            }
        }
        Arrays.sort(t);

        // 取前 k 个求和输出结果
        int result = 0;
        for (int i = 0; i < k; i++) {
            result += t[i];
        }
        System.out.println(result);
    }
}

Python

array1 = list(map(int, input().split()))
array2 = list(map(int, input().split()))
k = int(input())

# 枚举所有的数对元素和,存入 t 中,并排序
t = []
for i in range(1, array1[0] + 1):
    for j in range(1, array2[0] + 1):
        t.append(array1[i] + array2[j])
t.sort()

# 取前 k 个求和输出结果
print(sum(t[:k]))

C++

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    int num;
    // 读取第一个数组
    vector<int> array1;
    while(cin >> num) {
        array1.push_back(num);
        if(cin.peek() == '\n') break;
    }

    // 读取第二个数组
    vector<int> array2;
    while(cin >> num) {
        array2.push_back(num);
        if(cin.peek() == '\n') break;
    }

    // 读取 k
    int k;
    cin >> k;

    // 枚举所有的数对元素和,存入 t 中,并排序
    vector<int> t;
    for (size_t i = 1; i < array1.size(); ++i) {
        for (size_t j = 1; j < array2.size(); ++j) {
            t.push_back(array1[i] + array2[j]);
        }
    }
    sort(t.begin(), t.end());

    // 取前 k 个求和输出结果
    int result = 0;
    for (int i = 0; i < k && i < t.size(); ++i) {
        result += t[i];
    }
    cout << result << endl;

    return 0;
}

‍❤️‍华为OD机试面试交流群每日真题分享): 加V时备注“华为od加群”

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

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

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

相关文章

Qt扩展-muParser数学公式解析

muParser数学公式解析 一、概述1. 针对速度进行了优化2. 支持的运算符3. 支持的函数4. 用户定义的常量5. 用户定义的变量6. 自定义值识别回调7. 其他功能 二、内置函数三、内置二元运算符四、三元运算符五、内置常量六、源码引入1. 源码文件2. 编译器开关1. MUP_BASETYPE2.MUP_…

配置支持 OpenAPI 的 ASP.NET Core 应用

写在前面 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 本文记录如何配置基于Swagger 的 ASP.NET Core 应用程序的 OpenAPI 规范。 需要从NuGet 安装 Swashbuckle.AspNetCore 包 代码实现 var builder WebApplicati…

如何在 Golang 中使用 crypto/ed25519 进行数字签名和验证

如何在 Golang 中使用 crypto/ed25519 进行数字签名和验证 引言crypto/ed25519 算法简介环境搭建和准备工作生成密钥对进行数字签名 验证签名实际应用场景案例总结 引言 在当今数字化时代&#xff0c;网络安全显得尤为重要。无论是在网上进行交易、签署合同&#xff0c;还是发…

大模型创业的3条军规

上周&#xff0c;一家初创公司未能围绕LLM和 RAG 开展业务&#xff0c;尽管他们获得了第一份 B2B 大型合同。 以下是原因以及如何避免这种情况&#xff1a; 创始人写了一篇博客解释了为什么他不得不关闭他的业务&#xff0c;我在这里总结了他的要点。 NSDT工具推荐&#xff1a…

基于VMware和Unbuntu18.04编译 嘉立创·泰山派 Linux SDK

主机硬件要求 内存最少32G 硬盘腾出200-500G&#xff0c;虽然编译最终占了73G&#xff0c;但富余一些以后可以搞别的方便 操作系统win7/10/11 VMware 安装 1.去vmware官网下载&#xff1a;https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_comp…

docker安装elasticsearch+kibana

目录 1.安装es 2.安装kibana 3.kibana监控es 1.安装es 拉取镜像 docker pull elasticsearch:7.6.1 创建存放配置文件、数据、插件的各个文件夹 mkdir -p /home/docker/elasticsearch/config mkdir -p /home/docker/elasticsearch/data mkdir -p /home/docker/elasticsearch…

2024最新版MongoDB安装使用指南

2024最新版MongoDB安装使用指南 Installation and Usage Guide of the Latest MongoDB Community Edition in 2024 By JacksonML MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need. – mon…

网络异常案例三_RST

问题现象 在做功能测试的时候&#xff0c;经常看到设备离线的消息&#xff08;MQTT遗嘱&#xff09;。 在终端连接的网络设备上抓包分析&#xff0c;看到终端设备发起大量的RST请求。 151这个设备&#xff0c;7min&#xff0c;重置断开了8个TCP连接&#xff08;mqtt连接&#…

Ansible自动化运维实战

一、abstract简介 ansible是新出现的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具(puppet、cfengine、chef、func、fabric) 的优点&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令等功能.无客户端。我们要学一些Ansible的安装和一些基…

地平线旭日 X3 VNC 远程桌面灰屏解决

解决 windows 使用 VNC 远程连接地平线旭日 X3 开发板桌面环境灰屏的问题。 1 查看问题 通过启动vncserver后的log文件确认问题。 启动 vnc 服务 vncserver :1通过 terminal 输出可以看到日志文件的存储位置 打开查看该文件后发现首当其冲是权限问题&#xff1a;说xstartup…

【spring】springcloud中的组件有那些?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;spring ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 正文 我的其他博客 正文 说出主要的组件&#xff1a; Spring Cloud Eureka,服务注册中心,特性有失效剔除、服务保护Spring Cloud Zuul,API服…

系统分析师-23年-下午题目

系统分析师-23年-下午题目 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答&#xff0c;二、三、四、五题中任选两题作答 试题一 (25分) 说明 某软件公司拟开发一套汽车租赁系统&#xff0c;科学&#xff0c;安全和方便的管理租赁公司的各项业务&#xff0…

YOLOv7独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测

💡💡💡本文独家改进:一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv5网络中的nn.Upsample 💡💡💡在多个数据集下验证能够涨点,尤其在小目标检测领域涨点显著。 收录 YOLOv7原创自研 https://blog.csdn.net/m0_63774211/ca…

【每日一题】 2024年1月汇编

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【1.4】2397.被列覆盖的最多行数 2397. 被列覆盖的最多行数https://leetcode.cn/problems/maximum-rows-covered-by-columns/ 这…

服务攻防-开发组件安全Solr搜索Shiro身份Log4j日志本地CVE环境复现

知识点&#xff1a; 1、J2EE-组件安全-Solr-全文搜索 2、J2EE-组件安全-Shiro-身份验证 3、J2EE-组件安全-Log4J-日志记录 章节点&#xff1a; 1、目标判断-端口扫描&组合判断&信息来源 2、安全问题-配置不当&CVE漏洞&弱口令爆破 3、复现对象-数据库&中间…

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)

1.QSet: toList 中的toList 函数已不存在&#xff0c;遇到xx->toList改成直接用&#xff0c;如下&#xff1a; 2.开源QWT 图形库中QwtDial中的 setPenWidth 变成 setPenWidthF函数。 3.QDateTime 中无setTime_t 改为了setSecsSinceEpoch函数。 4.QRegExp 类已不存在 可以用Q…

STM32的中断系统详解

一、什么是中断 中断是指CPU在正常执行程序时&#xff0c;遇到外部/内部的紧急事件需处理&#xff0c;暂停当前程序的执行&#xff0c;转而去处理紧急事件&#xff0c;待事件处理完毕后&#xff0c;返回被打断的程序继续执行&#xff0c;这个过程就称之为中断。 中断的意义&a…

单片机驱动多个ds18b20

目录 1设计内容 2ds18b20介绍 2.1传感器引脚及原理图 2.2寄存器配置 3程序实现 3.1配置初始化 3.2配置寄存器 3.3ROM读取 3.4温度读取 1设计内容 通过51单片机&#xff0c;读取总线上挂载的多个ds18b20的温度信息。 如下图&#xff0c;成功读取到3路温度数据。 2ds18…

python打造光斑处理系统4:裁切光斑感兴趣区域

文章目录 图像裁切给定坐标裁切手动阈值裁切 光斑处理&#xff1a;python处理高斯光束的图像 光斑处理系统&#xff1a;程序框架&#x1f31f;打开图像&#x1f31f;参数对话框/伪彩映射 图像裁切 一般来说&#xff0c;光斑只占图像很小一部分&#xff0c;为了更好的观感和更…

Oracle 面试题 | 04.精选Oracle高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…