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

C++ में अधिकतम तत्व के रूप में k के साथ गैर-अतिव्यापी उपसरणियों की लंबाई का अधिकतम योग


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

समस्या का विवरण - यहाँ, हमारे पास एक सरणी और एक पूर्णांक k है। हमें इस सरणी से बनाए जा सकने वाले सभी संभावित गैर-अतिव्यापी उप-सरणियों को ढूंढना होगा। और बनाई गई सभी उप-सरणी की लंबाई का योग करें।

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

इनपुट - सरणी ={3, 7, 1, 2, 3, 1, 6, 3, 2, 5} k =3

आउटपुट - 7

स्पष्टीकरण - अधिकतम तत्व 3 के साथ गैर-अतिव्यापी उप-सरणी:

{3} : length = 1
{1, 2, 3, 1} : length = 4
{3, 2} : length = 2
Sum of length = 1+4+2 = 7

इस समस्या को हल करने के लिए, हम सरणी को पार करेंगे और सभी तत्वों को कम करेंगे और लंबाई बनाए रखेंगे, यदि सबरे (तत्वों की धारा) में k है तो लंबाई को योग में जोड़ें।

उदाहरण

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

#include <iostream>
using namespace std;
int subArrayLengthSum(int arr[], int n, int k){
   int lengthSum = 0;
   int subarrayLength = 0;
   int flag = 0;
   for (int i = 0; i < n;) {
      subarrayLength = 0;
      flag = 0;
      while (arr[i] <= k && i < n) {
         subarrayLength++;
         if (arr[i] == k)
            flag = 1;
         i++;
      }
      if (flag == 1)
      lengthSum += subarrayLength;
      while (arr[i] > k && i < n)
      i++;
   }
   return lengthSum;
}
int main(){
   int arr[] = {3, 7, 1, 2, 3, 1, 6, 3, 2, 5};
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 3;
   int ans = subArrayLengthSum(arr, size, k);
   cout<<"The max sum of lengths of non-overlapping subarrays with "<<k<<" as max element is "<<ans;
   return 0;
}

आउटपुट

The max sum of lengths of non-overlapping subarrays with 3 as max element is 7

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

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

  1. C++ में आकार K के M गैर-अतिव्यापी उप-सरणी का अधिकतम योग

    समस्या कथन एक सरणी और दो संख्या M और K को देखते हुए। हमें सरणी में K (गैर-अतिव्यापी) आकार के अधिकतम M उप-सरणी का योग खोजने की आवश्यकता है। (सरणी का क्रम अपरिवर्तित रहता है)। K सबअरे का आकार है और M सबअरे की गिनती है। यह माना जा सकता है कि सरणी का आकार m*k से अधिक है। यदि कुल सरणी आकार k का गुणज नही

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

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