在 C++ 中查找由两个数组之和形成的集合中的第 N 个项目
在这个问题中,我们得到了两个已排序的数组 arr1[] 和 arr2[],大小分别为 m 和一个元素 N。我们的任务是在由两个数组之和形成的集合中找到第 N 个项目。
代码描述 − 在这里,我们将创建一个集合,该集合包含 arr1 的一个元素和 arr2 的一个元素的和,即 sum = arr1[i] + arr2[j],其中 i, j < m。对于 N,我们需要找到集合中第 N 个元素的值。
让我们来看一个例子来理解这个问题:
输入
arr1[] = {3, 1, 5} , arr2[] = {6, 2, 8} , N = 4输出
解释
集合的元素为:
9 (3+6 and 1 +8) , 5 (3 + 2) , 11 (3+8, 5+6), 7 (1+6, 5+2), 3 (1+2), 13 (5+8). The fourth element is 7.
解决方案方法
解决方案方法很简单,通过找到数组元素的和来找到集合的元素。为此,我们将使用嵌套循环,外部循环迭代 arr1 的元素,内部循环迭代 arr2 的元素。对于内部循环的每次迭代,我们将总和存储到集合中,这将不允许重复元素。在所有总和值都输入后,我们将遍历集合并返回第 N 个元素。
程序说明了我们解决方案的工作原理:
示例
#include <iostream>
using namespace std;
void calcSumVariables(int sum[], int n) {
float SUMX = 0;
for (int i = 0; i < n; i++) {
SUMX += sum[i];
}
SUMX /= (n - 1);
for (int i = 0; i < n; i++)
cout<<"\nx"<<(i + 1)<<" = "<<(SUMX - sum[i]);
}
int main(){
int sum[] = {3, 8, 6, 7, 4, 5, 9 };
int N = sizeof(sum) / sizeof(sum[0]);
cout<<"The value of variables that form the sum are ";
calcSumVariables(sum, N);
return 0;
}输出
The value of variables that form the sum are x1 = 4 x2 = -1 x3 = 1 x4 = 0 x5 = 3 x6 = 2 x7 = -2
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP