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

C++ में K तत्व जोड़कर ऐरे की माध्यिका को अधिकतम करना


समस्या कथन

N तत्वों का एक ऐरे arr[] और एक पूर्णांक K दिया गया है जहां K < N। कार्य उसी ऐरे में K पूर्णांक तत्व डालना है ताकि परिणामी ऐरे की माध्यिका अधिकतम हो।

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

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

एल्गोरिदम

1. परिणामी ऐरे की माध्यिका को अधिकतम करने के लिए, डालने के लिए आवश्यक सभी तत्व ऐरे के अधिकतम तत्व से बड़े होने चाहिए।
2. ऐरे को सॉर्ट करें और ऐरे की माध्यिका arr[size/2] होगी यदि आकार विषम है अन्यथा (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 खोजें

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