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

सभी सरणी तत्वों को समान बनाने के लिए आवश्यक ऑपरेशनों की संख्या ज्ञात करें C++ में


इस समस्या में, हमें आकार n की एक सरणी arr दी गई है। हमारा कार्य सभी सरणी तत्वों को समान बनाने के लिए आवश्यक ऑपरेशनों की संख्या ज्ञात करना है।

ऑपरेशन को अधिकतम वजन वाले तत्व से सरणी के सभी तत्वों को समान वजन वितरित करना परिभाषित किया गया है।

यदि सरणी तत्वों को समान बनाना संभव नहीं है, तो -1 प्रिंट करें।

उदाहरण से समझते हैं:

इनपुट: arr[] = {7, 3, 3, 3} आउटपुट: 3

व्याख्या

वितरण के बाद सरणी {4, 4, 4, 4} है

समाधान दृष्टिकोण

समस्या का एक सरल समाधान सरणी का सबसे बड़ा मान ज्ञात करना है। और फिर इस सबसे बड़े मान का उपयोग करके जांचना है कि क्या सरणी के सभी तत्व समान हैं और मान सरणी के अधिकतम मान से n (या इसके गुणक) घटाने के बराबर है। यदि हां, तो n लौटाएं, यदि नहीं, तो -1 लौटाएं (जो संभव नहीं होने को दर्शाता है)।

उदाहरण

समस्या को समझने के लिए एक उदाहरण लेते हैं:

#include<bits/stdc++.h> using namespace std; int findOperationCount(int arr[],int n){    int j = 0, operations = 0;    int maxVal = arr[0];    int minVal = arr[0];    int maxValInd = 0;    for (int i = 1; i < n; i++){       if(arr[i] > maxVal){          maxVal = arr[i];          maxValInd = i;       }       if(arr[i] < minVal){          minVal = arr[i];       }    }    for (int i =0;i<n;i++){       if (arr[i] != maxVal && arr[i] <= minVal && arr[i] != 0){          arr[j] += 1;          arr[maxValInd] -= 1;          maxVal -= 1;          operations += 1;          j += 1;       }       else if (arr[i] != 0){          j += 1;       }    }    for (int i = 0; i < n; i++){       if (arr[i] != maxVal){          operations = -1;          break;       }    }    return operations; } int main(){    int arr[] = {4, 4, 8, 4};    int n = sizeof(arr)/sizeof(arr[0]);    cout<<"The number of operations required to make all array elements Equal is "<<findOperationCount(arr, n);    return 0; }

आउटपुट

The number of operations required to make all array elements Equal is 3

  1. - C++ का उपयोग करके सरणी में ऐसा तत्व खोजें जिससे सभी तत्व विभाज्य हों

    मान लीजिए हमारे पास कुछ तत्वों के साथ एक सरणी A है। हमें A से एक ऐसा तत्व ढूंढना है जिससे सभी तत्व इससे विभाज्य हों। मान लीजिए A = [15, 21, 69, 33, 3, 72, 81] है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हैं। इस समस्या को हल करने के लिए, हम A में सबसे छोटी संख्या लेंगे, फिर जांचेंगे कि क्य

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

    समस्या कथनn एलिमेंट्स का एक ऐरे दिया गया है जैसे कि एलिमेंट्स रिपीट हो सकते हैं। हम ऐरे से किसी भी संख्या में एलिमेंट्स डिलीट कर सकते हैं। कार्य ऐरे को समान बनाने के लिए डिलीट किए जाने वाले एलिमेंट्स की न्यूनतम संख्या ढूंढना है।arr[] = {10, 8, 10, 7, 10, -1, -4, 12}सभी ऐरे एलिमेंट्स को समान बनाने के

  1. - Python में सभी ऐरे तत्वों को बराबर बनाने के लिए आवश्यक ऑपरेशंस की संख्या

    हमें तत्वों का एक ऐरे दिया गया है, और हमें उन सभी को 1 से बढ़ाकर बराबर बनाना है। हमें प्रत्येक चरण में n - 1 तत्व बढ़ाने की अनुमति है। हमारा लक्ष्य सभी ऐरे तत्वों को बराबर बनाने के लिए आवश्यक कुल ऑपरेशंस की संख्या की गणना करना है। उदाहरण के लिए, यदि आप सूची [1, 2, 3] लेते हैं, तो सभी तत्वों को बराब