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

C++ में अधिकतम अंतर वाली जोड़ी चुनने के तरीकों की गणना करें

हमें Arr[] संख्याओं की एक सरणी दी गई है। लक्ष्य उन युग्मों की संख्या गिनना है जिनका अंतर सभी संभावित युग्मों के अधिकतम अंतर के बराबर है। जोड़े गिनें (i!=j) और arr[x]- arr[y] अधिकतम संभव है।

हम इसे पहले अधिकतम अंतर ज्ञात करके करेंगे जहां (i!=j)। और maxdiff के रूप में स्टोर करें। फिर उन सभी जोड़ियों को गिनें जिनमें अंतर =मैक्सडिफ है।

आइए उदाहरणों से समझते हैं।

इनपुट - गिरफ्तारी [] ={ 1,2,3,2,4,1,5 }

आउटपुट − अधिकतम अंतर वाली जोड़ी चुनने के तरीकों की संख्या − 2

स्पष्टीकरण -

Here minimum no. is 1 and maximum number is 5, maximum difference =5-1=4
Pair 1 [ 1,2,3,2,4,1,5 ] → (1,5) difference=4
Pair 2 [ 1,2,3,2,4,1,5 ] → (1,5) difference=4
Number of pairs with difference which is maximum=2.

इनपुट - गिरफ्तारी [] ={ 2,4,2,4 }

आउटपुट − अधिकतम अंतर वाली जोड़ी चुनने के तरीकों की संख्या − 4

स्पष्टीकरण -

Here minimum no. is 2 and maximum number is 4, maximum difference =4-2=2
Pair 1 [ 2,4,2,4 ] → (2,4) difference=2
Pair 2 [ 2,4,2,4 ] → (2,4) difference=2
Pair 3 [ 2,4,2,4 ] → (4,2) difference=2
Pair 4 [ 2,4,2,4 ] → (2,4) difference=2
Number of pairs with difference which is maximum=4.

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम एक पूर्णांक सरणी लेते हैं Arr[] यादृच्छिक संख्याओं के साथ आरंभ किया गया।

  • एक वैरिएबल N लें जो Arr[] की लंबाई को स्टोर करता है।

  • फ़ंक्शन countPairs(int arr[],int n) एक सरणी लेता है, इसकी लंबाई इनपुट के रूप में और उन जोड़ों को चुनने के तरीके देता है जिनका अंतर अधिकतम अंतर के बराबर है।

  • तरीकों की संख्या के लिए प्रारंभिक चर गणना को 0 के रूप में लें।

  • चर अंतर को प्रत्येक जोड़ी के अंतर के रूप में लें।

  • मैक्सडिफ वैरिएबल को सभी जोड़ियों के अधिकतम अंतर के रूप में लें।

  • सरणी से अधिकतम और न्यूनतम मान खोजें और क्रमशः अधिकतम और मिनी में स्टोर करें

  • अब मैक्सडिफ मैक्स-मिनी होगा।

  • जोड़ी के प्रत्येक तत्व के लिए लूप के लिए दो का उपयोग करके ट्रैवर्स सरणी।

  • 0<=i

  • गणना diff=arr[i]-arr[j] या arr[j]-arr[i] अलग के रूप में गिनें। यदि diff==maxdiff वृद्धि की गणना इस जोड़ी में अधिकतम अंतर के रूप में की जाती है।

  • सभी लूपों के अंत में काउंट में शर्त को पूरा करने वाले जोड़ों की कुल संख्या होगी।

  • परिणाम के रूप में गिनती लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int countWays(int arr[],int n){
   int count = 0;
   int diff;
   int maxdiff=0; //making minimum as larger than any product in array
   int mini,maxx;
   mini=maxx=arr[0];
   for (int i = 0; i < n; i++) //find minimum and maximum values{
      if(arr[i]<mini)
         {mini=arr[i];}
      if(arr[i]>maxx)
         { maxx=arr[i]; }
   }
   maxdiff=maxx-mini; //this is maximum difference
   //cout<<maxx<<" "<<mini;
   for (int i = 0; i < n-1; i++){
      for (int j = i+1; j < n; j++){
         diff=arr[i]-arr[j]; //pair 1
         if ( diff==maxdiff ){
            count++;
            //cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]; //to print
         }
         diff=arr[j]-arr[i]; //pair 2
         if ( diff==maxdiff ){
            count++;
            //cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]; //to print
         }
      }
   }
   return count;
}
int main(){
   int Arr[]={ 3, 2, 1, 1, 3 };
   int N=5; //length of array
   cout <<endl<< "No. of ways of choosing pair with maximum difference : "<<countWays(Arr,N);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

No. of ways of choosing pair with maximum difference : 4

  1. C++ में दिए गए अंतर के साथ एक जोड़ी खोजें

    विचार करें कि हमारे पास एक सरणी A है, n विभिन्न तत्व हैं। हमें सरणी A से एक युग्म (x, y) ज्ञात करना है, ताकि x और y के बीच का अंतर दिए गए अंतर d के समान हो। मान लीजिए कि तत्वों की एक सूची A =[10, 15, 26, 30, 40, 70] की तरह है, और दिया गया अंतर 30 है, तो जोड़ी होगी (10, 40) और (30, 70) इस समस्या को

  1. सी++ में इंटीजर की सरणी में अधिकतम उत्पाद के साथ एक जोड़ी खोजें

    विचार करें कि हमारे पास एक सरणी A है, n विभिन्न तत्व हैं। हमें सरणी A से एक युग्म (x, y) ज्ञात करना है, ताकि x और y का गुणनफल अधिकतम हो। सरणी में सकारात्मक या नकारात्मक तत्व हो सकते हैं। मान लीजिए कि एक सरणी इस प्रकार है:ए =[-1, -4, -3, 0, 2, -5], तो जोड़ी (-4, -5) होगी क्योंकि उत्पाद अधिकतम है। इस

  1. सी++ में एक सरणी में अधिकतम जीसीडी के साथ जोड़ी खोजें

    मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की एक सरणी है। हमारा काम सरणी से पूर्णांकों की जोड़ी को खोजना है, जहां GCD मान अधिकतम है। मान लीजिए A ={1, 2, 3, 4, 5}, तो आउटपुट 2 है। जोड़ी (2, 4) में GCD 2 है, अन्य GCD मान 2 से कम हैं। इस समस्या को हल करने के लिए, हम प्रत्येक तत्व के भाजक की गिनती को