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

C++でのK個の追加整数の後の中央値


この問題では、n個の整数の配列が与えられ、その配列にK個の要素を追加して、結果の配列の中央値を見つけます。条件を考えると、N+kは奇数です。

問題を理解するために例を見てみましょう

入力

array = {23, 65, 76, 67} ; k =1

出力

67

この問題を解決するために、指定された要素を昇順で並べ替えてから、配列の最後にk個の要素を追加します。つまり、k個大きい要素を取得します。

n+kが奇数であるという条件が与えられます。したがって、中央値は、式(n + k)/ 2を使用して計算できます。 。

中央値を見つけるためのプログラム

#include <bits/stdc++.h>
using namespace std;
int findMedianAfterK(int arr[], int n, int K) {
   sort(arr, arr + n);
   return arr[((n + K)/2)];
}
int main() {
   int array[] = {3,56, 8, 12, 67, 10 };
   int k = 3;
   int n = sizeof(array) / sizeof(array[0]);
   cout<<"The median after adding "<<k<<" elements is "<<findMedianAfterK(array, n, k);
   return 0;
}

出力

The median after adding 3 elements is 56

  1. C++でのK否定後の配列合計を最大化する

    問題の説明 サイズnと数kの配列が与えられます。配列をk回変更する必要があります。 配列の変更とは、各操作で、配列要素arr [i]を否定することで置き換えることができることを意味します。つまり、arr [i] =-arr[i]です。タスクは、k回の操作の後、配列の合計が最大になるようにこの操作を実行することです。 input arr [] ={7、-3、5、4、-1}の場合、最大合計は20になります。 最初に-3を否定します。これで、配列は{7、3、5、4、-1}になります 負の-1。これで、配列は{7、3、5、4、1}になります アルゴリズム 1. Replace the min

  2. C++でのstatic_cast

    static_castは、通常/通常の型変換に使用されます。これは、暗黙的な型強制の原因となるキャストでもあり、明示的に呼び出すこともできます。 floatをintに、charをintに変換する場合などに使用する必要があります。これにより、関連する型クラスをキャストできます。 例 #include <iostream> using namespace std; int main() {    float x = 4.26;    int y = x; // C like cast    int z = static_cas