Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में समान सरणी में K तत्वों को जोड़ने के बाद दिए गए सरणी के माध्यिका को अधिकतम करें

समस्या कथन

N तत्वों की एक सरणी arr[] और एक पूर्णांक K जहां K

यदि इनपुट ऐरे {1, 3, 2, 5} और k =3 है तो -

  • सॉर्ट किया गया ऐरे {1, 2, 3, 5} हो जाता है
  • 5 से बड़े 3 तत्व डालें। इस ऑपरेशन के बाद सरणी {1, 2, 3, 5, 6, 6, 6} हो जाती है।
  • नई सरणी का माध्यिका 5 है

एल्गोरिदम

1. In order to maximize the median of the resultant array, all the elements that need to be inserted must be greater than the maximum element from the array
2. Sort the array and the median of the array will be arr[size / 2] if the size is odd else (arr[(size / 2) – 1] + arr[size / 2]) / 2

उदाहरण

#include <bits/stdc++.h>
using namespace std;
double getMaxMedian(int *arr, int n, int k){
   int newSize = n + k;
   double median;
   sort(arr, arr + n);
   if (newSize % 2 == 0) {
      median = (arr[(newSize / 2) - 1] + arr[newSize / 2]) / 2;
      return median;
   }
   median = arr[newSize / 2];
   return median;
}
int main(){
   int arr[] = {1, 3, 2, 5};
   int n = sizeof(arr) / sizeof(arr[0]);
   int k = 3;
   cout << "Max median = " << getMaxMedian(arr, n, k) << endl;
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है:

Max median = 5

  1. C++ में K निषेध के बाद सरणी योग को अधिकतम करें

    समस्या कथन आकार n और एक संख्या k की एक सरणी को देखते हुए। हमें एक सरणी k को कई बार संशोधित करना होगा। संशोधित सरणी का अर्थ है कि प्रत्येक ऑपरेशन में हम किसी भी सरणी तत्व arr [i] को अस्वीकार करके प्रतिस्थापित कर सकते हैं यानी arr [i] =-arr [i]। कार्य इस ऑपरेशन को इस तरह से निष्पादित करना है कि k सं

  1. C++ में दिए गए नंबरों तक सरणी तत्वों को अधिकतम करें

    समस्या कथन पूर्णांकों की एक सरणी, एक संख्या और एक अधिकतम मान को देखते हुए, कार्य उस अधिकतम मान की गणना करना है जो सरणी तत्वों से प्राप्त किया जा सकता है। शुरुआत से ट्रैवर्सिंग एरे पर प्रत्येक मान को पिछले इंडेक्स से प्राप्त परिणाम से जोड़ा या घटाया जा सकता है जैसे कि किसी भी बिंदु पर परिणाम 0 से कम

  1. C++ में दिए गए सरणी के तत्वों के भाज्य का GCD ज्ञात कीजिए

    मान लीजिए कि हमारे पास एन तत्वों के साथ एक सरणी ए है। हमें सरणी के सभी तत्वों के भाज्य का GCD ज्ञात करना है। मान लीजिए कि तत्व {3, 4, 8, 6} हैं, तो भाज्य का GCD 6 है। यहाँ हम ट्रिक देखेंगे। चूँकि दो संख्याओं का GCD वह सबसे बड़ी संख्या है, जो दोनों संख्याओं को विभाजित करती है, तो दो संख्याओं के भाज्य