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

अधिकतम उपसरणी आकार, जैसे कि उस आकार के सभी उपसरणियों का योग C++ में k से कम है

इस ट्यूटोरियल में, हम अधिकतम सबएरे आकार को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि उस आकार के सभी सबएरे का योग k से कम हो।

इसके लिए हमें आकार N की एक सरणी और एक पूर्णांक k प्रदान किया जाएगा। हमारा काम सबएरे की लंबाई को इस तरह से खोजना है कि दिए गए एरे योग में उस लंबाई के सभी सब-एरे k से कम या उसके बराबर हों।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
//finding maximum length subarray
int bsearch(int prefixsum[], int n, int k) {
   int ans = -1;
   //performing binary search
   int left = 1, right = n;
   while (left <= right) {
      int mid = (left + right) / 2;
      int i;
      for (i = mid; i <= n; i++) {
         if (prefixsum[i] - prefixsum[i - mid] > k)
         break;
      }
      if (i == n + 1) {
         left = mid + 1;
         ans = mid;
      }
      else right = mid - 1;
   }
   return ans;
}
//returning maximum subarray size
int maxSize(int arr[], int n, int k) {
   int prefixsum[n + 1];
   memset(prefixsum, 0, sizeof(prefixsum));
   for (int i = 0; i < n; i++)
   prefixsum[i + 1] = prefixsum[i] + arr[i];
   return bsearch(prefixsum, n, k);
}
int main() {
   int arr[] = {1, 2, 10, 4};
   int n = sizeof(arr) / sizeof(arr[0]);
   int k = 14;
   cout << maxSize(arr, n, k) << endl;
   return 0;
}

आउटपुट

2

  1. C++ में दी गई राशि से कम या उसके बराबर राशि वाले अधिकतम योग उप-सरणी

    इस समस्या में, हमें एक सरणी और एक योग दिया जाता है। हमारा काम एक ऐसा प्रोग्राम बनाना है जो c++ में दिए गए योगों से कम या उसके बराबर राशि वाले अधिकतम योग उप-सरणी को खोजेगा। हमें n से कम या उसके बराबर किसी भी लंबाई का उप-सरणी ज्ञात करना है जिसका योग दिए गए योग से कम या उसके बराबर है। समस्या को समझने

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

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

  1. ऐसे तत्वों की अधिकतम संख्या ज्ञात कीजिए जिनका निरपेक्ष अंतर C++ में 1 से कम या बराबर हो

    मान लीजिए कि हमारे पास n तत्वों की एक सरणी है। हमें सरणी से चयन करने के लिए तत्वों की अधिकतम संख्या का पता लगाना है, जैसे कि चुने हुए तत्वों में से किन्हीं दो के बीच पूर्ण अंतर 1 से कम या बराबर है। इसलिए यदि सरणी [2, 2, 3, 4, की तरह है, 5], तो तत्व 3 होगा, इसलिए अधिकतम गिनती वाला क्रम 2, 2, 3 है। 0