整数对最小和

力扣刷题——排序 判断能否形成等差数列 给你一个数字数组 arr 如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 示例 1: 输入:arr = [3,5,1] 输出:true 解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] 任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。 示例 2: 输入:arr = [1,2,4] 输出:false 解释:无法通过重新排序得到等差数列。 思路1数组排序+逐项验证 最直观的思路就是,先把数组排序 然后一次遍历挨个判断.. 阅读详情

题目描述

给定两个整数数组 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

解题思路

1、组合出所有可能的整数对,并求和
2、对所有求和结果升序排序
3、对最小的k个和进行求和

C++代码实现

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main()
{
	vector<int> arr1, arr2;
	int k;
	char c;
	while ((cin >> k).get(c)) {
		arr1.emplace_back(k);
		if(c == '\n')	
			break;
	}

	while ((cin >> k).get(c)) {
		arr2.emplace_back(k);
		if (c == '\n')
			break;
	}

	cin >> k;

	int i, j;
	vector<int> res;
	for (i = 0; i < arr1.size(); ++i) {
		for (j = 0; j < arr2.size(); ++j) {
			res.emplace_back(arr1[i] + arr2[j]);
		}
	}

	sort(res.begin(), res.end());
	j = 0;
	for (i = 0; i < k; ++i) {
		j += res[i];
	}
	cout << j << endl;
	return 0;
}
牛客网华为软件测试题库,牛客网华为机试题答案 大家好,本文将围绕牛客网华为软件测试题库展开说明,牛客网华为机试题答案是一个很多人都想弄明白的事情,想搞清楚华为牛客网的笔试难吗需要先了解以下几个事情。 阅读详情

相关推荐

华为OD机试 - 整数最小(Python) | 机试题+算法思路+考点+代码解析 【2023】

给定两个整数数组array1array2数组元素升序排列假设从array1array2中分别取出一个元素可构成一对元素现在需要取出K个元素并对取出的所有元素计算最小值注意:两对元素如果对应于array1array2中的两个下标均相同,则视为同一个元素

坚果的博客 1950

给定两个整数数组,arr1、arr2数组元素升序排列

题目描述给定两个整数数组,arr1、arr2数组元素升序排列; 假设从arr1、arr2中分别取出一个元素,可构成一对元素; 现在需要取出k对元素,并对取出的所有元素,计算最小值; 注意:两对元素对应arr1、arr2的下标是相同的,视为同一对元素。 输入描述 输入两行数组arr1、arr2 每行首个数字为数组大小size, 0 < size <= 100 arr1,arr2中的每个元素e, 0< e <1000 接下来一行,正整数k 0 < k <

sdonoman11的博客 4376

100分】【整数最小

假设从array1array2中分别取出一个元素可以构成一对元素,现在需要从中取出k对元素,并计算这些元素,求取最小值。最后一行为一个正整数k(0 < k

weixin_54707168的博客 1080

机试题笔记

第一题:整数最小 1.1题目描述给定两个整数数组array1array2数组元素升序排列。假设从array1array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素,计算最小值 注意:两对元素如果对应于array1array2中的两个下标均相同,则视为同一对元素。 输入描述: 输入两行数组array1array2,每行首个数字为数组大小size(0 < size <= 100); 0 < array1[i] <=

hellolianhua的博客 5652

华为机试:整数最小

【编程题目 | 100分】整数最小 [ 100 / 中等 ] 整数最小 题目描述: 输入字符串s,输出s中包含所有整数最小 说明: 字符串s,只包含 a-z A-Z ± ; 合法的整数包括 1) 正整数 一个或者多个0-9组成,如 0 2 3 002 102 2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023 输入描述: 包含数字的字符串 输出描述: 所有整数最小 示例 1: 输入 bb1234aa 输出 10 说明 1+2+3

小朱小朱绝不认输的博客 5620

华为OD机试之整数最小

给定两个整数数组array1array2数组元素升序排列。 假设从array1array2中分别取出一个元素可构成一对元素,现在需要取出k对元素, 并对取出的所有元素,计算最小值。 注意: 两对元素如果对应于array1array2中的两个下标均相同,则视为同一对元素

小马哥的博客 1359

【算法题】整数最小

【代码】【算法题】整数最小

张紫娃的博客 353

求字符串中所有整数最小

已支持(Java & JS & Python & C & C++),考察:逻辑分析

CSDN 1万+

Python找到整数最小

摘要: 给定两个升序排列整数数组arr1arr2,要求从中选取k对元素(每对包含arr1arr2各一个元素),使得所有选取元素的总最小。若两对元素的下标相同则视为同一对。输入包含两行数组(首元素数组长度)一个整数k,输出最小。例如,输入3 1 1 23 1 2 3,k=2时,最优解为两对[1,1][1,1],总为4。Python解法通过遍历所有可能的元素,排序后取前k小的累加。核心代码包括输入处理、全排列生成排序求

qq_51565260的博客 283

华为OD机试真题---整数最小

给定两个整数数组`array1``array2`,数组元素升序排列。假设从`array1``array2`中分别取出一个元素可构成一对元素。现在需要取出K个元素对(即从两个数组中各取一个元素组成一个对,共取K个这样的对),并对取出的所有元素,计算最小值。注意:两对元素如果对应于`array1``array2`中的两个下标均相同,则视为同一个元素对,不能重复使用。

风信子的博客 1964

1 求字符串中所有整数最小

题目题目描述输入字符串$,输出s中包含所有整数最小。说明:字符串s,只包含a-ZA-Z±;合法的整数包括1)正整数一个或者多个0-9组成,如0230021022)负整数负号-开头,数字部分由一个或者多个0-9组成,如0-012-23-00023输入描述包含数字的字符串输出描述所有整数最小

u012545581的博客 1422
上一篇: VS2017配置多线程保姆级教学(亲测)
下一篇: 勾股数元组
HPL__001
博客等级 码龄8年 0粉丝 66原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值