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

C++の配列で距離

このチュートリアルでは、配列内の距離

このために、N個のintergerと値Kを含む配列が提供されます。私たちのタスクは、Kより近くない要素を含むサブシーケンスの最大合計を見つけることです。

#include <bits/stdc++.h>
using namespace std;
//returning maximum sum
int maxSum(int* arr, int k, int n) {
   if (n == 0)
      return 0;
   if (n == 1)
      return arr[0];
   if (n == 2)
      return max(arr[0], arr[1]);
   int dp[n];
   dp[0] = arr[0];
   for (int i = 1; i <= k; i++)
      dp[i] = max(arr[i], dp[i - 1]);
   for (int i = k + 1; i < n; i++)
      dp[i] = max(arr[i], dp[i - (k + 1)] + arr[i]);
   int max = *(std::max_element(dp, dp + n));
   return max;
}
int main() {
   int arr[] = { 6, 7, 1, 3, 8, 2, 4 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int k = 2;
   cout << maxSum(arr, k, n);
   return 0;
}

出力

15

  1. C++で2つの要素が隣接しないような循環配列の最大合計

    この問題では、循環配列cirArr[]が与えられます。私たちのタスクは、C++で2つの要素が隣接しないように循環配列の最大合計を見つけるプログラムを作成することです。 問題の説明 循環配列の場合、隣接する要素を取得できないように、配列の要素の最大合計を見つける必要があります。つまり、代替要素を取得する必要があります。 循環アレイ は、配列の最後の要素が最初の要素に接続されている特殊なタイプの配列です。 問題を理解するために例を見てみましょう 入力 cirArr[] = {4, 1, 5, 3, 2} 出力 9 説明 最大合計循環サブシーケンスは[4、5、2]です。合計=9 ソリ

  2. C ++でそれらの合計がMで割り切れるように符号を変更して、N個の要素のすべての組み合わせを出力します。

    この問題では、N個の要素の配列が与えられます。そして、要素のすべての合計を返す必要があります。整数Mで割り切れます。 Input : array = {4, 7, 3} ; M = 3 Output : 5+4+3 ; 5+4-3 この問題を解決するには、得られるすべての可能な合計を見つけるために使用できるべき集合の概念を知る必要があります。この合計から、Mで割り切れるすべてのものを印刷します。 アルゴリズム Step 1: Iterate overall combinations of ‘+’ and ‘-’ using power set.