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

C++の配列の最小値と2番目に小さい値の最大合計


このチュートリアルでは、配列内の最小値と2番目に小さい値の最大合計を見つけるプログラムについて説明します。

このために、整数を含む配列が提供されます。私たちのタスクは、配列のすべての可能な反復で最小要素と2番目に小さい要素の最大合計を見つけることです。

#include <bits/stdc++.h>
using namespace std;
//returning maximum sum of smallest and
//second smallest elements
int pairWithMaxSum(int arr[], int N) {
   if (N < 2)
      return -1;
   int res = arr[0] + arr[1];
   for (int i=1; i<N-1; i++)
      res = max(res, arr[i] + arr[i+1]);
   return res;
}
int main() {
   int arr[] = {4, 3, 1, 5, 6};
   int N = sizeof(arr) / sizeof(int);
   cout << pairWithMaxSum(arr, N) << endl;
   return 0;
}

出力

11

  1. C++で分割統治法を使用した最大合計サブアレイ

    正の値と負の値を持つデータのリストが1つあるとします。合計が最大である連続するサブ配列の合計を見つける必要があります。リストに{-2、-5、6、-2、-3、1、5、-6}が含まれているとすると、最大サブ配列の合計は7になります。これは{6、-2、-3の合計です。 、1、5} この問題は、分割統治法を使用して解決します。手順は次のようになります- 手順 − アレイを2つの部分に分割します 次の3つの最大値を見つけます 左側のサブアレイの最大サブアレイ合計 右サブアレイの最大サブアレイ合計 サブアレイが中点を横切るようなサブアレイの最大合計 例 #include <iostr

  2. C ++の合計配列パズル?

    ここでは、配列に関連する1つの興味深い問題を確認します。 n個の要素を持つ配列があります。 n個の要素の別の配列を作成する必要があります。ただし、2番目の配列のi番目の位置は、i番目の要素を除く最初の配列のすべての要素の合計を保持します。そして、1つの制約は、この問題では減算演算子を使用できないことです。 減算演算を使用できれば、すべての要素の合計を取得し、最初の配列のi番目の要素を減算して、2番目の配列のi番目の場所に格納することで、この問題を簡単に解決できます。 ここでは、毎回要素を追加することでこれを解決し、0..n-1のiについては、位置iの要素を無視します。ポイントを得るためのア