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

C++ . का उपयोग करते हुए n श्रेणियों में अधिकतम हुआ पूर्णांक

इस समस्या में, हमें N श्रेणी दी जाती है। हमारा कार्य n श्रेणियों में अधिकतम हुआ पूर्णांक . है ।

सभी श्रेणियों के शुरुआती और अंतिम मूल्य के लिए। हमें वह मान ढूँढ़ने की ज़रूरत है जो सबसे ज़्यादा होता है।

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

इनपुट

S1 = 1, E1 = 3
S2 = 2, E2 = 6
S3 = 3, E3 = 4

आउटपुट

2

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

समस्या को हल करने का एक सरल तरीका हैशिंग का उपयोग करके, हम सभी सदस्यों और उनकी गिनती को गिनने के लिए हैश तालिका का उपयोग करेंगे। हम सभी रेंज को पार करेंगे और हैश टेबल में स्टोर काउंट करेंगे, फिर हम अधिकतम काउंट पाएंगे।

रैखिक समय में समस्या को हल करने के लिए एक अन्य दृष्टिकोण एक श्रेणी सरणी का उपयोग कर रहा है। इस सरणी में, हम श्रेणी के सभी प्रारंभ मानों के सूचकांक को 1 जोड़कर और श्रेणी के सभी अंतिम मानों को इसमें से 1 घटाकर अद्यतन करेंगे। विल उपसर्ग योग ढूंढेगा और अधिकतम उपसर्ग योग मान ज्ञात करेगा।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <bits/stdc++.h>
#define MAX 1000000
using namespace std;
int findMaxOccrEle(int L[], int R[], int n){
   int occurenceConut[MAX];
   memset(occurenceConut, 0, sizeof occurenceConut);
   int maxi = -1;
   for (int i = 0; i < n; i++) {
      occurenceConut[L[i]] += 1;
      occurenceConut[R[i] + 1];
      if(R[i]>maxi){
         maxi=R[i];
      }
   }
   int prefSum = occurenceConut[0],maxEleIndex;
   for (int i = 1; i < maxi+1; i++) {
      occurenceConut[i] += occurenceConut[i - 1];
      if (prefSum < occurenceConut[i]) {
         prefSum = occurenceConut[i];
         maxEleIndex = i;
      }
   }
   return maxEleIndex;
}
int main(){
   int L[] = { 1, 2, 3 };
   int R[] = { 3, 6, 4 };
   int n = sizeof(L) / sizeof(L[0]);
   cout<<"The maximum occurred integer in the range is "<<findMaxOccrEle(L, R, n);
   return 0;
}

आउटपुट

The maximum occurred integer in the range is 3

  1. सी ++ का उपयोग कर मैट्रिक्स में अधिकतम योग के साथ कॉलम खोजें।

    मान लीजिए कि हमारे पास एम एक्स एन आकार का एक मैट्रिक्स है। हमें कॉलम ढूंढना है, जिसमें अधिकतम योग है। इस कार्यक्रम में हम कुछ मुश्किल दृष्टिकोण का पालन नहीं करेंगे, हम सरणी कॉलम-वार को पार करेंगे, फिर प्रत्येक कॉलम का योग प्राप्त करेंगे, यदि योग अधिकतम है, तो योग और कॉलम इंडेक्स प्रिंट करें। उदाहरण

  1. C++ में डिवाइड और कॉनकर का उपयोग करते हुए अधिकतम योग सबअरे

    मान लीजिए कि हमारे पास सकारात्मक और नकारात्मक मूल्यों वाले डेटा की एक सूची है। हमें सन्निहित उप-सरणी का योग ज्ञात करना है जिसका योग सबसे बड़ा है। मान लीजिए सूची में {-2, -5, 6, -2, -3, 1, 5, -6} है, तो अधिकतम उप-सरणी का योग 7 है। यह {6, -2, -3 का योग है। , 1, 5} हम इस समस्या का समाधान फूट डालो और ज

  1. C++ में डिवाइड और कॉनकर एल्गोरिथम का उपयोग करते हुए अधिकतम सबअरे योग

    मान लीजिए कि हमारे पास सकारात्मक और नकारात्मक मूल्यों वाले डेटा की एक सूची है। हमें सन्निहित उप-सरणी का योग ज्ञात करना है जिसका योग सबसे बड़ा है। मान लीजिए सूची में {-2, -5, 6, -2, -3, 1, 5, -6} है, तो अधिकतम उप-सरणी का योग 7 है। यह {6, -2, -3 का योग है। , 1, 5} हम इस समस्या को फूट डालो और जीतो पद्