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

सी ++ में अधिकतम वजन अंतर

इस समस्या में, हमें एक सरणी arr[] और एक संख्या M दी जाती है। हमारा कार्य C++ में अधिकतम भार अंतर की गणना करने के लिए एक प्रोग्राम बनाना है।

समस्या का विवरण

हम सरणी से एम तत्व इस तरह पाएंगे कि योग और शेष तत्वों के योग के बीच पूर्ण अंतर अधिकतम हो।

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

इनपुट :गिरफ्तारी [] ={3, 1, 6, 9, 4} एम =3

आउटपुट :15

स्पष्टीकरण

हम 4,6,9 पर विचार करेंगे। योग 19 है। शेष संख्याओं के योग के साथ पूर्ण अंतर है

|19 - 4| =15

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

समस्या का समाधान इस तथ्य पर आधारित है कि अधिकतम अंतर केवल M सबसे बड़ी संख्या या M सबसे छोटी संख्याओं के मामले में ही संभव है। और हमें दोनों स्थितियों की जांच करने और अंतिम परिणाम खोजने के लिए पूर्ण अंतर की तुलना करने की आवश्यकता है। M सबसे बड़ी/छोटी संख्याओं को खोजने की प्रक्रिया को आसान बनाने के लिए, हम सरणी को सॉर्ट करेंगे और फिर K सबसे बड़ी और सबसे छोटी संख्याओं पर गणना करेंगे।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int maxWeightDifference(int arr[], int N, int M){
   int maxabsDiff = -1000;
   sort(arr, arr + N);
   int sumMin = 0, sumMax = 0, arrSum = 0;
   for(int i = 0; i < N; i++){
      arrSum += arr[i];
      if(i < M)
         sumMin += arr[i];
      if(i >= (N-M))
         sumMax += arr[i];
   }
   maxabsDiff = max(abs(sumMax - (arrSum - sumMax)), abs(sumMin -(arrSum - sumMin)));
   return maxabsDiff;
}
int main(){
   int arr[] = {3, 1, 6, 9, 4} ;
   int M = 3;
   int N = sizeof(arr)/sizeof(arr[0]);
   cout<<"The maximum weight difference is "<<maxWeightDifference(arr,N, M);
   return 0;
}

आउटपुट

The maximum weight difference is 15
. है
  1. C++ में जॉब शेड्यूलिंग में अधिकतम लाभ

    मान लीजिए कि हमारे पास अलग-अलग कार्य हैं, जहां प्रत्येक कार्य प्रारंभ समय [i] से समाप्ति समय [i] तक किया जाना निर्धारित है, उस कार्य के लिए हमें लाभ का लाभ मिलता है [i]। हम स्टार्टटाइम, एंडटाइम और प्रॉफिट लिस्ट को जानते हैं, हमें अधिकतम लाभ का पता लगाना होगा जो हम इस तरह ले सकते हैं कि ओवरलैपिंग टाइ

  1. सी ++ में सरणी में अधिकतम ट्रिपल योग

    इस समस्या में, हमें एक array दिया जाता है। हमारा काम एक ऐसा प्रोग्राम बनाना है जो एरे में अधिकतम ट्रिपल योग प्राप्त करे यानी तीन तत्वों का सेट खोजें जिसका योग अधिकतम हो। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट - सरणी ={4, 6, 1, 2} आउटपुट -12 स्पष्टीकरण - all triplets are : (4, 6, 1) = 4

  1. सी++ में अधिकतम सबरे योग मॉड्यूलो एम

    इस समस्या में, हमें n आकार की एक सरणी और एक पूर्णांक m दिया जाता है। हमारा काम एक ऐसा प्रोग्राम बनाना है जो C++ में अधिकतम सबअरे योग मॉड्यूल m ढूंढेगा। कार्यक्रम विवरण - यहां, हम सबएरे के सभी तत्वों के योग को m से विभाजित करके प्राप्त अधिकतम मान प्राप्त करेंगे। समस्या को समझने के लिए एक उदाहरण लेत