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

C++ में अंतराल को हटाने के बाद कवर किए गए अधिकतम अंक

इस ट्यूटोरियल में, हम एक इंटरवल को हटाने के बाद कवर किए गए अधिकतम बिंदुओं को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे

इसके लिए हमें N अंतराल और अधिकतम रेंज मान प्रदान किया जाएगा। हमारा काम यह खोजना है कि एक अंतराल जिसे हटा दिया जाता है, हमें दी गई सीमा में अधिकतम संख्या 1 से अधिकतम सीमा मान तक देगा

उदाहरण

#include <bits/stdc++.h>
#define ll long long int
using namespace std;
//finding required interval
void solve(int interval[][2], int N, int Q) {
   int Mark[Q] = { 0 };
   for (int i = 0; i < N; i++) {
      int l = interval[i][0] - 1;
      int r = interval[i][1] - 1;
      for (int j = l; j <= r; j++)
         Mark[j]++;
   }
   //counting covered numbers
   int count = 0;
   for (int i = 0; i < Q; i++) {
      if (Mark[i])
         count++;
   }
   int count1[Q] = { 0 };
   if (Mark[0] == 1)
      count1[0] = 1;
   for (int i = 1; i < Q; i++) {
      if (Mark[i] == 1)
         count1[i] = count1[i - 1] + 1;
      else
         count1[i] = count1[i - 1];
   }
   int maxindex;
   int maxcoverage = 0;
   for (int i = 0; i < N; i++) {
      int l = interval[i][0] - 1;
      int r = interval[i][1] - 1;
      int elem1;
      if (l != 0)
         elem1 = count1[r] - count1[l - 1];
      else
         elem1 = count1[r];
      if (count - elem1 >= maxcoverage) {
         maxcoverage = count - elem1;
         maxindex = i;
      }
   }
   cout << "Maximum Coverage is " << maxcoverage << " after removing interval at index " << maxindex;
}
int main() {
   int interval[][2] = {
      { 1, 4 },
      { 4, 5 },
      { 5, 6 },
      { 6, 7 },
      { 3, 5 }
   };
   int N = sizeof(interval) / sizeof(interval[0]);
   int Q = 7;
   solve(interval, N, Q);
   return 0;
}

आउटपुट

Maximum Coverage is 7 after removing interval at index 4

  1. C++ में जॉब शेड्यूलिंग में अधिकतम लाभ

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

  1. सी ++ में एक लाइन पर मैक्स पॉइंट्स

    मान लीजिए कि हमारे पास 2D प्लेन है। हमें एक ही सीधी रेखा पर रहने वाले बिंदुओं की अधिकतम संख्या ज्ञात करनी है। तो अगर अंक इस तरह हैं - फिर 4 अंक होते हैं इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - n :=अंकों की संख्या, यदि n <3 है, तो n लौटाएं उत्तर :=2 मैं के लिए 1 से n - 1 की सीमा

  1. C++ में अधिकतम एक तत्व को हटाने के बाद अधिकतम सबअरे योग को अधिकतम करें

    समस्या कथन एन पूर्णांकों की एक सरणी गिरफ्तारी [] को देखते हुए। कार्य पहले अधिकतम उप-सरणी योग को खोजना है और फिर उप-सरणी से अधिकतम एक तत्व को निकालना है। अधिकतम एक तत्व को ऐसे निकालें कि हटाने के बाद अधिकतम योग अधिकतम हो। यदि दी गई इनपुट सरणी {1, 2, 3, -2, 3} है तो अधिकतम उप-सरणी योग {2, 3, -2, 3}