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

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


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

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

इनपुट

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

आउटपुट

यहां अधिकतम अंतर है: 6

व्याख्या

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

इनपुट

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

आउटपुट

यहां अधिकतम अंतर है: 20

व्याख्या

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

उपयोग किया गया दृष्टिकोण

  • इनपुट सरणी arr[] और समूह बनाने के लिए एक संख्या m लें।

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

  • यहां हम पहले सरणी arr[] के तत्वों को सॉर्ट करेंगे।

  • फिर हम पहले m और अंतिम m तत्वों का योग ढूंढेंगे क्योंकि ये arr[] के सबसे छोटे m और सबसे बड़े m संख्याएं होंगी।

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

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

उदाहरण

#include <stdio.h> // सरणी के सबसे बड़े और सबसे छोटे m तत्वों के योग के बीच अधिकतम अंतर की गणना के लिए फ़ंक्शन बनाएं int find_diff(int arr[], int length, int m){     // सरणी को सॉर्ट करने के लिए     sort(arr, length);     int maxsum = 0, minsum = 0;     // अब m तत्वों के दो उपसमुच्चयों के बीच अधिकतम अंतर की गणना करें     for(int i = 0; i < m; i++){         minsum += arr[i];         maxsum += arr[length - i - 1];     }     return (maxsum - minsum); } // ड्राइवर प्रोग्राम 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. - C# में दो DateTime के बीच मिलीसेकंड में अंतर

    मान लीजिए निम्न हमारी तारीखों के लिए दो DateTime ऑब्जेक्ट हैं: 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 और