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

C++ में सन्निहित सरणी

मान लीजिए कि हमारे पास एक द्विआधारी सरणी है, हमें 0 और 1 की समान संख्या के साथ एक सन्निहित उपसरणी की अधिकतम लंबाई ज्ञात करनी है। इसलिए यदि इनपुट [0,1,0] जैसा है, तो आउटपुट 2 के रूप में [0 होगा, 1] या [1,0] 0 और 1 की समान संख्या वाली सबसे बड़ी सन्निहित सरणी है।

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

  • ret:=0, n:=अंकों का आकार, योग:=0
  • नक्शा m बनाएं, m सेट करें[0] :=- 1
  • मैं के लिए 0 से लेकर अंकों के आकार तक - 1
    • योग :=योग + 1 जब अंक [i] 1 है अन्यथा योग :=योग – 1
    • यदि योग m में है, तो ret :=ret का अधिकतम और i – m[sum], अन्यथा m[sum] :=i
  • रिटर्न रिटर्न

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int findMaxLength(vector<int>& nums) {
      int ret = 0;
      int n = nums.size();
      int sum = 0;
      map <int, int> m;
      m[0] = -1;
      for(int i = 0; i < nums.size(); i++){
         sum += nums[i] == 1 ? 1: -1;
         if(m.count(sum)){
            ret = max(ret, i - m[sum]);
         }else m[sum] = i;
      }
      return ret;
   }
};
main(){
   vector<int> v = {0,1,0,0,1};
   Solution ob;
   cout << (ob.findMaxLength(v));
}

इनपुट

[0,1,0,0,1]

आउटपुट

4

  1. सी ++ स्ट्रिंग्स की सरणी

    इस खंड में हम देखेंगे कि C++ में स्ट्रिंग्स की एक सरणी को कैसे परिभाषित किया जाए। जैसा कि हम जानते हैं कि सी में कोई तार नहीं था। हमें कैरेक्टर ऐरे का उपयोग करके स्ट्रिंग्स बनाना है। इसलिए स्ट्रिंग्स की कुछ सरणी बनाने के लिए, हमें वर्णों की एक 2-आयामी सरणी बनानी होगी। प्रत्येक पंक्तियाँ उस मैट्रिक्स

  1. सी++ में छँटाई

    इस खंड में हम देखेंगे कि C++ में सॉर्टिंग एल्गोरिथम कैसे किया जाता है। एक क्रमबद्ध सरणी एक सरणी है जिसमें प्रत्येक तत्व को किसी क्रम में क्रमबद्ध किया जाता है जैसे संख्यात्मक, वर्णानुक्रम आदि। संख्यात्मक सरणी को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे कि बबलसॉर्ट, इंसर्शन सॉर्ट, सेलेक्शन सॉर्ट, मर्ज

  1. सी++ में पॉइंटर अंकगणित का उपयोग करके सरणी का योग

    यह पॉइंटर का उपयोग करके सरणी तत्वों के योग का पता लगाने के लिए एक C++ प्रोग्राम है। एल्गोरिदम Begin    Initialize the array elements with values from user input.    Initialize s = 0    Loop for i = 0 to       s = s + *(ptr + i)    Print the sum