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

C++ में ऐरे के सभी एलिमेंट्स को समान बनाने के लिए न्यूनतम डिलीट ऑपरेशन्स


समस्या कथन

n एलिमेंट्स का एक ऐरे दिया गया है जैसे कि एलिमेंट्स रिपीट हो सकते हैं। हम ऐरे से किसी भी संख्या में एलिमेंट्स डिलीट कर सकते हैं। कार्य ऐरे को समान बनाने के लिए डिलीट किए जाने वाले एलिमेंट्स की न्यूनतम संख्या ढूंढना है।

arr[] = {10, 8, 10, 7, 10, -1, -4, 12}

सभी ऐरे एलिमेंट्स को समान बनाने के लिए हमें हाइलाइटेड 5 एलिमेंट्स डिलीट करने होंगे।

एल्गोरिदम

1. प्रत्येक एलिमेंट की फ्रीक्वेंसी गिनें 2. फ्रीक्वेंसीज में अधिकतम फ्रीक्वेंसी ढूंढें। इसे maxFrequency कहें 3. डिलीट किए जाने वाले एलिमेंट्स: n – maxFrequency जहां n ऐरे का आकार है

उदाहरण

#include <iostream> #include <unordered_map> #include <climits> #define SIZE(arr) (sizeof(arr)/sizeof(arr[0])) using namespace std; int minDeleteOperations(int *arr, int n){    unordered_map<int, int> frequency;    int maxFrequency = INT_MIN;    for (int i = 0; i < n; ++i) {       frequency[arr[i]]++;    }    for (auto it = frequency.begin(); it != frequency.end(); ++it) {       maxFrequency = max(maxFrequency, it->second);    }    return (n - maxFrequency); } int main(){    int arr[] = {10, 8, 10, 7, 10, -1, 9, 4};    cout << "Required deletes: " << minDeleteOperations(arr, SIZE(arr)) << "\n";    return 0; }

आउटपुट

जब आप उपरोक्त प्रोग्राम को कंपाइल और एक्जीक्यूट करते हैं। यह निम्नलिखित आउटपुट जनरेट करता है -

Required deletes: 5

  1. - C++ में सरणी के GCD को k का गुणक बनाने के लिए न्यूनतम ऑपरेशन

    मान लीजिए हमारे पास एक सरणी arr और एक अन्य मान k है। हमें सरणी के GCD को k का गुणक बनाने के लिए न्यूनतम ऑपरेशंस की संख्या ढूंढनी है। यहां ऑपरेशन मान को बढ़ाना या घटाना है। मान लीजिए सरणी {4, 5, 6} है, और k 5 है। हम 4 को 1 से बढ़ा सकते हैं, और 6 को 1 से घटा सकते हैं, तो यह 5 बन जाता है। यहां ऑपरेशंस

  1. - C++ में को-प्राइम ऐरे बनाने के लिए न्यूनतम इंसर्शन

    इस सेक्शन में हम एक और दिलचस्प समस्या देखेंगे। मान लीजिए हमारे पास N एलिमेंट्स का एक ऐरे है। हमें इस ऐरे को को-प्राइम ऐरे बनाने के लिए न्यूनतम इंटरसेक्शन पॉइंट्स ढूंढने हैं। को-प्राइम ऐरे में हर दो लगातार एलिमेंट्स का gcd 1 होता है। हमें ऐरे भी प्रिंट करना है।मान लीजिए हमारे पास {5, 10, 20} जैसे एलि

  1. - C++ में ऐरे के सभी क्रमागत युग्म तत्वों का निरपेक्ष अंतर

    इस समस्या में हम देखेंगे कि ऐरे में प्रत्येक युग्म के तत्वों के बीच निरपेक्ष अंतर कैसे प्राप्त करें। यदि n तत्व हैं, तो परिणामी ऐरे में n-1 तत्व होंगे। मान लीजिए तत्व हैं {8, 5, 4, 3}। परिणाम होगा |8-5| = 3, फिर |5-4| = 1, |4-3| = 1। एल्गोरिदम pairDiff(arr, n) begin res := परिणाम रखने के लिए एक