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

C++で正確にk個の要素を削除した後の配列の可能な最大中間要素


このチュートリアルでは、正確にk個の要素を削除した後、配列の可能な最大の中間要素を見つけるプログラムについて説明します。

このために、サイズNと整数Kの配列が提供されます。私たちのタスクは、結果の配列の中央の要素が最大になるように、配列からK個の要素を減らすことです。

#include <bits/stdc++.h>
using namespace std;
//calculating maximum value of middle element
int maximum_middle_value(int n, int k, int arr[]) {
   int ans = -1;
   int low = (n + 1 - k) / 2;
   int high = (n + 1 - k) / 2 + k;
   for (int i = low; i <= high; i++) {
      ans = max(ans, arr[i - 1]);
   }
   return ans;
}
int main() {
   int n = 5, k = 2;
   int arr[] = { 9, 5, 3, 7, 10 };
   cout << maximum_middle_value(n, k, arr) << endl;
   n = 9;
   k = 3;
   int arr1[] = { 2, 4, 3, 9, 5, 8, 7, 6, 10 };
   cout << maximum_middle_value(n, k, arr1) << endl;
   return 0;
}

出力

7
9

  1. C++のマトリックスで最大の要素を見つけるプログラム

    この問題では、サイズnXmの行列が与えられます。私たちのタスクは、C++のマトリックスで最大の要素を見つけるプログラムを作成することです。 問題の説明 −ここでは、行列の最大の要素を簡単に見つける必要があります。 問題を理解するために例を見てみましょう 入力 mat[3][3] = {{4, 1, 6}, {5, 2, 9}, {7, 3, 0}} 出力 9 ソリューションアプローチ この問題の解決策は、マトリックスをトラバースするだけです。これは、2つのネストされたループを使用し、行列の各要素が maxValより大きいかどうかを確認することによって行われます。 。そして最後にmaxV

  2. C ++で最大1つの要素を削除した後、サブアレイの最大合計を最大化します

    問題の説明 N個の整数の配列arr[]が与えられます。タスクは、最初に最大のサブ配列の合計を見つけてから、サブ配列から最大で1つの要素を削除することです。削除後の最大合計が最大になるように、最大​​で1つの要素を削除します。 指定された入力配列が{1、2、3、-2、3}の場合、サブ配列の最大合計は{1、3、-2、3}です。次に、-2を削除できます。残りのアレイを削除すると、次のようになります- {1, 2, 3, 3} with sum 9 which is maximum. アルゴリズム 1. Use Kadane’s algorithm to find the maximu