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

C++ में अधिकतम औसत Subarray I

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

इसलिए, यदि इनपुट [1,13,-5,-8,48,3] और k =4 जैसा है, तो आउटपुट 12.0 होगा, जैसे (13-5-8+48)/4 =12.0।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • योग :=0

  • इनिशियलाइज़ करने के लिए i :=0, जब i

    • योग :=योग + अंक[i]

  • मैक्सी:=योग

  • इनिशियलाइज़ i :=k के लिए, जब i <अंकों का आकार, अपडेट करें (i से 1 बढ़ाएँ), करें -

    • योग :=योग + अंक[i] - अंक [i - k]

    • अगर योग> मैक्सी, तो -

      • मैक्सी:=योग

  • वापसी मैक्सी / के

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   double findMaxAverage(vector<int>& nums, int k) {
      int sum = 0;
      for (int i = 0; i < k; i++) {
         sum += nums[i];
      }
      double maxi = sum;
      for (int i = k; i < nums.size(); i++) {
         sum += nums[i] - nums[i - k];
         if (sum > maxi) {
            maxi = sum;
         }
      }
      return maxi / k;
   }
};
main(){
   Solution ob;
   vector<int> v = {1,13,-5,-8,48,3};
   cout << (ob.findMaxAverage(v, 4));
}

इनपुट

{1,13,-5,-8,48,3}, 4

आउटपुट

12

  1. सी ++ में मैट्रिक्स में अधिकतम पथ योग

    इस समस्या में, हमें M*N आकार का एक 2D मैट्रिक्स दिया गया है। हमारा काम एक प्रोग्राम बनाना है जो मैट्रिक्स में अधिकतम पथ योग ढूंढेगा। यहां, मैट्रिक्स में अधिकतम पथ योग को एक पंक्ति से अंतिम पंक्ति तक सभी तत्वों के योग के रूप में परिभाषित किया गया है। पथ को पार करने के लिए अनुमत चालें नीचे की ओर और व

  1. C++ में किसी सरणी का अधिकतम औसत योग विभाजन

    समस्या कथन एक सरणी को देखते हुए, हम संख्या A की एक पंक्ति को अधिकतम K आसन्न (गैर-रिक्त) समूहों में विभाजित करते हैं, फिर स्कोर प्रत्येक समूह के औसत का योग होता है। अधिकतम स्कोर क्या हो सकता है? उदाहरण यदि इनपुट सरणी {9, 2, 5, 3, 10} है तो हम सरणी को इस प्रकार विभाजित कर सकते हैं - {9} {2, 5, 3} औ

  1. C++ में अधिकतम योग सख्ती से बढ़ते हुए सबरे का पता लगाएं

    मान लीजिए कि हमारे पास n पूर्णांकों की एक सरणी है। सख्ती से बढ़ते उपसरणियों का अधिकतम योग ज्ञात कीजिए। तो अगर सरणी [1, 2, 3, 2, 5, 1, 7] की तरह है, तो योग 8 है। इस सरणी में तीन सख्ती से बढ़ते उप-सरणी हैं ये {1, 2, 3}, {2 , 5} और {1, 7}। अधिकतम योग उप-सरणी {1, 7} है इस समस्या को हल करने के लिए, हमें