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

C++ में ऐरे की माध्यिका को अधिकतम करना


समस्या कथन

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++ का उपयोग करके ऐरे को पुनर्व्यवस्थित करना i*arr[i] को अधिकतम करने के लिए

    इस लेख में, हम n संख्याओं के दिए गए ऐरे को पुनर्व्यवस्थित करने की समस्या पर चर्चा करेंगे। मूल रूप से, हमें ऐरे से तत्वों का चयन करना होगा। प्रत्येक तत्व का चयन करने के लिए, हमें कुछ पॉइंट्स मिलते हैं जिनका मूल्यांकन वर्तमान तत्व के मान * वर्तमान तत्व से पहले चुने गए तत्वों की संख्या द्वारा किया जाएग

  1. - C++ में सरणी के उपसर्ग को -1 से गुणा करके सरणी के योग को अधिकतम करें

    हमें एक पूर्णांक सरणी दी गई है और कार्य पहले सरणी का उपसर्ग प्राप्त करना है और फिर इसे -1 से गुणा करना है, दूसरा सरणी का उपसर्ग योग गणना करना है और अंत में उत्पन्न उपसर्ग सरणी से अधिकतम योग ढूंढना है। उपसर्ग सरणी इस प्रकार उत्पन्न होती है: उपसर्गसरणी[0] का पहला तत्व = सरणी का पहला तत्व उपसर्गसरणी[1

  1. C++ में भूलभुलैया समस्या का समाधान C++ में भूलभुलैया समस्या का समाधान

    समस्या विवरण मान लीजिए एक गेंद एक भूलभुलैया में है जिसमें खाली स्थान और दीवारें हैं। गेंद किसी भी दिशा में (ऊपर, नीचे, बाएं, दाएं) लुढ़ककर खाली रास्तों से गुजर सकती है, लेकिन यह तब तक नहीं रुकेगी जब तक यह दीवार से न टकरा जाए। जब गेंद रुकती है, तो यह अगली दिशा चुन सकती है। हमें गेंद की प्रारंभिक स्