Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C . में m तत्वों के दो उपसमुच्चय के बीच अधिकतम अंतर

कार्य किसी सरणी में m तत्वों के योग के बीच सबसे बड़ा अंतर खोजना है। मान लीजिए कि हमारे पास एक सरणी और एक संख्या m है, तो हम पहले उच्चतम m संख्याओं का योग ज्ञात करेंगे और फिर अधिकतम अंतर प्राप्त करने के लिए उसमें से सबसे कम m संख्याओं का योग घटाएंगे। तो मुख्य बात यह है कि m संख्याओं के दो उपसमुच्चय खोजें जिनका योग सबसे अधिक और सबसे कम योग हो।

आइए अब समझते हैं कि हमें एक उदाहरण का उपयोग करके क्या करना है -

इनपुट

arr = {1,2,3,4,5} ; m=3

आउटपुट

Maximum difference here is : 6

स्पष्टीकरण - यहां सबसे बड़ी 3 संख्याएं 3,4,5 हैं और योग 12 है। सबसे छोटी 3 संख्याएं 1,2,3 हैं और योग 6 है। तो उच्चतम या अधिकतम अंतर 12-6 है जो 6 है।

इनपुट

arr = {10,13,22,8,16,14}; m=4

आउटपुट

Maximum difference here is : 20

स्पष्टीकरण - यहां सबसे बड़ी 4 संख्याएं 22,16,14,13 और योग 65 है। सबसे छोटी 4 संख्याएं 8,10,13,14 हैं और योग 45 है। तो उच्चतम या अधिकतम अंतर 65-45 है जो 20 है।

निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है

  • सेट बनाने के लिए इनपुट ऐरे arr[] और एक नंबर m लें

  • Find_diff () फ़ंक्शन में हम इनपुट सरणी और इसकी लंबाई पास कर रहे हैं और m तत्वों के सेट के योग का अधिकतम अंतर लौटा रहे हैं।

  • यहां हम सबसे पहले ऐरे एरर के एलीमेंट को सॉर्ट करेंगे []।

  • तब हम पहले m और अंतिम m तत्वों का योग ज्ञात करेंगे क्योंकि ये कम से कम m और उच्चतम m संख्या arr[] होंगे।

  • अंत में हम अंतर लौटाते हैं।

  • नोट - सॉर्ट (गिरफ्तारी [], int) को सॉर्ट किए गए सरणी को वापस करने के लिए माना जाता है।

उदाहरण

#include<stdio.h>
//create function to calculate maximum difference between sum of highest and lowest m elements of array
int find_diff(int arr[],int length,int m){
   //for sorting the array
   sort(arr,length);
   int maxsum=0, minsum=0;
   //calculate now max difference between two subsets of m elements
   for(int i=0;i<m;i++){
      minsum+=arr[i];
      maxsum+=arr[length-i-1];
   }
   return(maxsum-minsum);
}
// Driver program
int main(){
   int arr[]={1,1,2,3,5,7,1};
   int m=3;
   cout << find_diff(arr,7,m);
   return 0;
}

आउटपुट

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

12

  1. C++ में किन्हीं दो तत्वों के बीच न्यूनतम अंतर ज्ञात कीजिए

    मान लीजिए कि हमारे पास n तत्वों की एक सरणी है जिसे A कहा जाता है। हमें उस सरणी में किन्हीं दो तत्वों के बीच न्यूनतम अंतर ज्ञात करना होगा। मान लीजिए A =[30, 5, 20, 9], तो परिणाम 4 होगा। यह तत्वों 5 और 9 की न्यूनतम दूरी है। इस समस्या को हल करने के लिए, हमें इन चरणों का पालन करना होगा - सरणी को घटत

  1. सी # दो डेटटाइम के बीच मिलीसेकंड में अंतर

    मान लें कि हमारी तिथियों के लिए निम्नलिखित दो दिनांक समय वस्तुएं हैं। DateTime date1 = new DateTime(2018, 8, 11, 08, 15, 20); DateTime date2 = new DateTime(2018, 8, 11, 11, 14, 25); TimeSpan का उपयोग करके इन दोनों तिथियों के बीच अंतर ज्ञात करें। TimeSpan ts = date2 - date1; अब मिलीसेकंड प्राप्त कर

  1. पायथन में दो सूचियों से दो तत्वों के बीच न्यूनतम अंतर खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास दो सूचियाँ L1 और L2 हैं, हमें L1 से किसी संख्या और L2 की संख्या के बीच सबसे छोटा अंतर ज्ञात करना है। इसलिए, यदि इनपुट L1 =[2, 7, 4], L2 =[16, 10, 11] जैसा है, तो आउटपुट 3 होगा, क्योंकि सबसे छोटा अंतर 10 - 7 =3 है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सूची L1 को