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

सी++ में न्यूनतम आकार सबअरे योग

मान लीजिए कि हमारे पास n तत्वों की एक सरणी है, और एक सकारात्मक पूर्णांक s है। हमें एक सन्निहित उप-सरणी की न्यूनतम लंबाई ज्ञात करनी है, जिसका योग s के बराबर या अधिक है। यदि कोई नहीं है, तो इसके बजाय 0 लौटाएं। तो अगर सरणी [2,3,1,2,3,4] की तरह है और योग 7 है, तो आउटपुट 2 होगा। यह उपसरणी है [4,3] इस मामले के लिए न्यूनतम लंबाई है।

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

  • उत्तर:=0, एन:=सरणी का आकार ए, जे:=0 और योग:=0

  • मेरे लिए 0 से n - 1 की सीमा में

    • योग :=योग + ए[i]

    • जबकि योग – A[i]>=K और j <=1

      • योग :=योग – A[j]

      • j को 1 से बढ़ाएँ

    • यदि योग>=k, तो

      • यदि उत्तर =0 या उत्तर> (i - j + 1), तो उत्तर :=(i - j + 1)

  • वापसी उत्तर

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int minSubArrayLen(int K, vector<int>& A) {
      int ans = 0;
      int n = A.size();
      int j = 0;
      int sum = 0;
      for(int i = 0; i < n; i++){
         sum += A[i];
         while(sum - A[j] >= K && j <= i){
            sum -= A[j];
            j++;
         }
         if(sum >= K){
            if(ans == 0 || ans > (i - j + 1)) ans = (i - j + 1);
         }
      }
   return ans;
   }
};
main(){
   vector<int> v = {2,3,1,2,4,3};
   Solution ob;
   cout << ((ob.minSubArrayLen(7,v)));
}

इनपुट

7
[2,3,1,2,4,3]

आउटपुट

2

  1. सी++ में न्यूनतम पथ योग

    मान लीजिए कि हमारे पास गैर-ऋणात्मक पूर्णांकों से भरा एक m x n मैट्रिक्स है, तो ऊपरी बाएं कोने से नीचे दाएं कोने तक एक पथ खोजें जो इसके पथ के साथ सभी संख्याओं के योग को कम करता है। आंदोलन किसी भी समय केवल नीचे या दाएं हो सकते हैं। तो उदाहरण के लिए, यदि मैट्रिक्स नीचे जैसा है 1 3 1 1 5 1 4 2 1 आ

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

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

  1. सी++ में त्रिभुज में न्यूनतम योग पथ

    समस्या कथन संख्याओं की त्रिकोणीय संरचना को देखते हुए, ऊपर से नीचे तक न्यूनतम पथ योग ज्ञात करें। प्रत्येक चरण में आप नीचे की पंक्ति में आसन्न संख्याओं पर जा सकते हैं। उदाहरण अगर इनपुट है -    5   7 3  8 1 2 9 6 4 5 फिर न्यूनतम योग 13 इस प्रकार है - 5 + 3 + 1 + 4 एल्गोरिदम गति