C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で合計が最大のペアの数


配列が与えられた場合、合計が最大のペアの数を見つける必要があります。例を見てみましょう。

入力

arr = [3, 6, 5, 2, 1, 2, 3, 4, 1, 5]

出力

2

最大ペアの合計は10です。最大合計のペアは2つあります。 (5、5)と(6、4)です。

アルゴリズム

  • 乱数を使用して配列を初期化します。
  • 最大合計を最小に初期化します。
  • 2つのループで配列を反復処理します。

    • ペアの最大合計を見つけます。
  • カウントを0に初期化します。
  • ここで、アレイをもう一度繰り返します。

    • 現在のペアの合計が最大のペアの合計と等しい場合は、カウントを増やします。
  • ペア数を返します。

実装

以下は、C++での上記のアルゴリズムの実装です

#include <bits/stdc++.h>
using namespace std;
int getMaxSumPairsCount(int a[], int n) {
   int maxSum = INT_MIN;
   for (int i = 0; i < n; i++) {
      for (int j = i + 1; j < n; j++) {
         maxSum = max(maxSum, a[i] + a[j]);
      }
   }
   int count = 0;
   for (int i = 0; i < n; i++) {
      for (int j = i + 1; j < n; j++) {
         if (a[i] + a[j] == maxSum) {
            count++;
         }  
      }
   }
   return count;
}
int main() {
   int arr[] = { 3, 4, 5, 2, 1, 2, 3, 4, 1, 5 };
   int n = 10;
   cout << getMaxSumPairsCount(arr, n) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

1

  1. C++で指定された合計ですべてのペアを印刷します

    この問題では、整数の配列と整数の合計が与えられ、合計が合計値に等しい整数のすべてのペアを出力する必要があります。 問題を理解するために例を見てみましょう: 入力- 配列={1、6、-2、3}合計=4 出力- (1、3)、(6、-2) ここでは、指定された合計値のペアが必要です。 問​​題の簡単な解決策は、合計を生成する要素のペアをチェックすることです。これは、配列をトラバースして、合計値となる配列内の数値を見つけることで実行できます。 例 このプログラムは解決策を説明します- #include <iostream> using namespace std; int prin

  2. C ++を使用して、マトリックス内の合計が最大の列を検索します。

    サイズがMxNの行列があるとします。合計が最大の列を見つける必要があります。このプログラムでは、トリッキーなアプローチには従わず、配列を列ごとにトラバースし、各列の合計を取得します。合計が最大の場合は、合計と列インデックスを出力します。 例 #include<iostream> #define M 5 #define N 5 using namespace std; int colSum(int colIndex, int mat[M][N]){    int sum = 0;    for(int i = 0; i<M; i++){