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

C++ STL में सेट का उपयोग करते हुए k आकार के सभी उप-सरणियों में से अधिकतम

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

इसके लिए हमें आकार N और पूर्णांक K की एक सरणी प्रदान की जाएगी। हमारा कार्य प्रत्येक K तत्वों में अधिकतम तत्व प्राप्त करना, उन्हें जोड़ना और उसका प्रिंट आउट लेना है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//returning sum of maximum elements
int maxOfSubarrays(int arr[], int n, int k){
   set<pair<int, int> > q;
   set<pair<int, int> >::reverse_iterator it;
   //inserting elements
   for (int i = 0; i < k; i++) {
      q.insert(pair<int, int>(arr[i], i));
   }
   int sum = 0;
   for (int j = 0; j < n - k + 1; j++) {
      it = q.rbegin();
      sum += it->first;
      q.erase(pair<int, int>(arr[j], j));
      q.insert(pair<int, int>(arr[j + k], j + k));
   }
   return sum;
}
int main(){
   int arr[] = { 4, 10, 54, 11, 8, 7, 9 };
   int K = 3;
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << maxOfSubarrays(arr, n, K);
   return 0;
}

आउटपुट

182

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

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

  1. सी ++ में एसटीएल का उपयोग कर सरणी के सभी रिवर्स क्रमपरिवर्तन?

    इस खंड में हम देखेंगे कि C++ में STL का उपयोग करके सभी रिवर्स क्रमपरिवर्तन कैसे उत्पन्न किए जाते हैं। कुछ संख्याओं जैसे (1, 2, 3) का आगे और पीछे क्रमपरिवर्तन नीचे जैसा होगा - आगे क्रमपरिवर्तन 1, 2, 3 1, 3, 2 2, 1, 3 2, 3, 1 3, 1, 2 3, 2, 1 उलट क्रमपरिवर्तन 3, 2, 1 3, 1, 2 2, 3, 1 2, 1, 3 1, 3, 2 1,

  1. एसटीएल का उपयोग कर सी ++ में ऐरे उत्पाद

    यह ऐरे उत्पाद का पता लगाने के लिए C++ प्रोग्राम का एक उदाहरण है। एल्गोरिदम Begin Initialize the values of array. Call used defined function accumulate to return the product of array. Print the solution. End. उदाहरण कोड #include <iostream> #include <numeric> using namespace std;