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

最大の合計連続サブアレイ用のC/C ++プログラム?


整数の配列が与えられます。隣接するすべての要素の合計を見つける必要があります。合計が最大の場合、出力として送信されます。

動的計画法を使用して、現在の項までの最大合計を保存します。配列内の連続する要素の合計を見つけるのに役立ちます。

Input: An array of integers. {-2, -3, 4, -1, -2, 1, 5, -3}
Output: Maximum Sum of the Subarray is : 7

アルゴリズム

maxSum(array、n)

入力-メイン配列、配列のサイズ。

出力-最大合計。

Begin
   tempMax := array[0]
   currentMax = tempMax
   for i := 1 to n-1, do
      currentMax = maximum of (array[i] and currentMax+array[i])
      tempMax = maximum of (currentMax and tempMax)
   done
   return tempMax
End

#include<iostream>
using namespace std;
int maxSum( int arr[], int n) {
   int tempMax = arr[0];
   int currentMax = tempMax;
   for (int i = 1; i < n; i++ ) { //find the max value
      currentMax = max(arr[i], currentMax+arr[i]);
      tempMax = max(tempMax, currentMax);
   }
   return tempMax;
}
int main() {
   int arr[] = {-2, -3, 4, -1, -2, 1, 5, -3};
   int n = 8;
   cout << "Maximum Sum of the Sub-array is: "<< maxSum( arr, n );
}

出力

Maximum Sum of the Sub-array is: 7

  1. n番目のカタラン数のC/C ++プログラム?

    カタラン数は一連の数です。カタラン数は、さまざまなカウントの問題で発生する一連の自然数を形成します。多くの場合、再帰的に定義されたオブジェクトが関係します。 C n 長さ2nのディック言語の数です。ディックワードは、n個のXとn個のYで構成される文字列であり、文字列の最初のセグメントにXより多くのYが含まれることはありません。たとえば、次は長さ6のディック言語です XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY. 記号Xを開き括弧として、Yを閉じ括弧として再解釈します。C n 正しく一致するn組の括弧を含む式の数をカウントします ((()

  2. 三角マッチ棒番号のC/C ++プログラム?

    ここでは、ピラミッドを作るために必要なマッチ棒の数を数える方法を以下に示します。ピラミッドのベースが与えられます。したがって、ベースが1の場合、ピラミッドを作成するには3本のマッチ棒が必要です。ベース2の場合は9本のマッチ棒が必要であり、ベースサイズ3の場合は18本のマッチ棒が必要です。 この問題を解決するには、次の式を使用する必要があります- 例 #include <iostream> using namespace std; int main(){    int x;    cout << "Enter