在 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

更新於:2020 年 6 月 3 日

48 次瀏覽

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.