C++ 两个数组的最大乘积和
时间: 2024-02-09 19:10:27 浏览: 34
可以使用两个变量来记录两个数组中的最大值和次大值,然后计算它们的乘积,最后将乘积相加得到最大乘积和。
以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int maxProductSum(vector<int>& arr1, vector<int>& arr2) {
int n1 = arr1.size();
int n2 = arr2.size();
// 记录 arr1 中的最大值和次大值
int max1 = INT_MIN, max2 = INT_MIN;
for (int i = 0; i < n1; i++) {
if (arr1[i] > max1) {
max2 = max1;
max1 = arr1[i];
} else if (arr1[i] > max2) {
max2 = arr1[i];
}
}
// 记录 arr2 中的最大值和次大值
int max3 = INT_MIN, max4 = INT_MIN;
for (int i = 0; i < n2; i++) {
if (arr2[i] > max3) {
max4 = max3;
max3 = arr2[i];
} else if (arr2[i] > max4) {
max4 = arr2[i];
}
}
return max1 * max3 + max2 * max4;
}
int main() {
vector<int> arr1 = {1, 4, 2, 3};
vector<int> arr2 = {2, 5, 1, 6};
cout << maxProductSum(arr1, arr2) << endl;
return 0;
}
```
输出结果为:
```
30
```