查詢C++中兩個陣列中對數和最大的和
在這個問題中,我們得到了兩個陣列,都是正數且互不相同。我們的任務是找到兩個陣列中對數和最大的和。
我們將找到一個對數,其和最大,且每個元素分別來自不同的陣列。
讓我們來看一個例子來理解這個問題:
Input : arr1[] = {3, 7, 5}, arr2[] = {8, 2, 4}
Output : 15解釋 −
Pairs is (7, 8) = 7 + 8 = 15
解決方案方法
解決這個問題的一個簡單方法是使用迴圈。我們將使用巢狀迴圈找到所有對數的和,並返回和最大的對數。解決這個問題的有效方法是找到每個陣列的最大元素。然後找到最大對數的和。這將使用簡單的迴圈而不是巢狀迴圈。
示例
程式說明了我們解決方案的工作原理
#include <iostream>
using namespace std;
int findMaxPairSum(int arr1[], int n1, int arr2[], int n2) {
int max1 = -1;
int max2 = -1;
for (int i = 0; i < n1; i++) {
if (arr1[i] > max1)
max1 = arr1[i];
}
for (int i = 0; i < n2; i++) {
if (arr2[i] > max2)
max2 = arr2[i];
}
return (max1 + max2);
}
int main() {
int arr1[] = { 3, 7, 5 };
int arr2[] = { 8, 2, 4 };
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int n2 = sizeof(arr2) / sizeof(arr2[0]);
cout<<"Sum of pair from two arrays with maximum sum is "<<findMaxPairSum(arr1, n1, arr2, n2);
return 0;
}輸出
Sum of pair from two arrays with maximum sum is 15
另一種方法是對陣列進行排序。然後找到兩個陣列的最大值元素,然後找到最大對數的和。
示例
程式說明了我們解決方案的工作原理
#include <bits/stdc++.h>
using namespace std;
int findMaxPairSum(int arr1[], int n1, int arr2[], int n2) {
sort(arr1, arr1 + n1);
sort(arr2, arr2 + n2);
return (arr1[n1 - 1] + arr2[n2 - 1]);
}
int main() {
int arr1[] = { 3, 7, 5 };
int arr2[] = { 8, 2, 4 };
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int n2 = sizeof(arr2) / sizeof(arr2[0]);
cout<<"Sum of pair from two arrays with maximum sum is "<<findMaxPairSum(arr1, n1, arr2, n2);
return 0;
}輸出
Sum of pair from two arrays with maximum sum is 15
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP