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

C++ में एक बाइनरी सरणी में 1s का सबसे लंबा निरंतर अनुक्रम प्राप्त करने के लिए 0 के सूचकांक को 1 से बदलने के लिए खोजें

मान लीजिए, हमारे पास N तत्वों की एक सरणी है। ये तत्व या तो 0 या 1 हैं। 1s का सबसे लंबा सन्निहित अनुक्रम प्राप्त करने के लिए 0 की स्थिति को 1 से प्रतिस्थापित करने के लिए खोजें। मान लीजिए कि सरणी arr =[1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1] की तरह है, तो आउटपुट इंडेक्स 9 है। 0 को इंडेक्स 9 पर 1 के साथ बदलने का कारण बनता है 1s का अधिकतम सन्निहित अनुक्रम

हमें तीन इंडेक्स का ट्रैक रखना होगा। वर्तमान सूचकांक (करंट), पिछला शून्य सूचकांक (पीजेड), और पिछले शून्य सूचकांक (पीपीजेड) से पिछला। अब सरणी को पार करें जब सरणी तत्व 0 है, फिर curr और ppz के बीच अंतर की गणना करें, यदि अंतर अधिकतम से अधिक है, तो अधिकतम अपडेट करें, अंत में अधिकतम अंतर के साथ prev_zero की वापसी सूचकांक।

उदाहरण

#include<iostream>
using namespace std;
int findIndex(bool arr[], int n) {
   int count_max = 0;
   int index;
   int pz = -1;
   int ppz = -1;
   for (int curr=0; curr<n; curr++) {
      if (arr[curr] == 0) {
         if (curr - ppz > count_max){
            count_max = curr - ppz;
            index = pz;
         }
         ppz = pz;
         pz = curr;
      }
   }
   if (n-ppz > count_max)
      index = pz;
   return index;
}
int main() {
   bool arr[] = {1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "Index of 0 to be replaced is "<< findIndex(arr, n);
}

आउटपुट

Index of 0 to be replaced is 9

  1. C++ में बाइनरी ट्री सबसे लंबे समय तक लगातार अनुक्रम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें यह जांचना होगा कि क्या हम सबसे लंबे क्रमागत अनुक्रम पथ की लंबाई ज्ञात कर सकते हैं। यदि पथ माता-पिता-बच्चे कनेक्शन के साथ पेड़ में किसी भी नोड से कुछ शुरुआती नोड से नोड्स के किसी अनुक्रम को संदर्भित करता है। माता-पिता से बच्चे तक लगातार सबसे लंबे रास्ते की

  1. पता लगाएँ कि क्या बाइनरी मैट्रिक्स में एक आयत है जिसके कोने C++ में 1 हैं

    मान लीजिए कि हमारे पास एक बाइनरी मैट्रिक्स है। हमें यह पता लगाना है कि क्या दिए गए मैट्रिक्स में कोई आयत या अनुक्रम है जिसके चारों कोने 1 के बराबर हैं। मैट्रिक्स इस तरह है 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 परिणाम हाँ होगा। यहाँ एक आयत मौजूद है, जिसके कोने 1s हैं। 1 0 1 0 1 0 1 0 1

  1. सी ++ में ऐरे कार्यान्वयन के साथ बाइनरी ट्री

    एक बाइनरी ट्री एक विशेष प्रकार का पेड़ है जिसमें पेड़ के प्रत्येक नोड में अधिकतम दो चाइल्ड नोड हो सकते हैं। इन चाइल्ड नोड्स को राइट चाइल्ड और लेफ्ट चाइल्ड के रूप में जाना जाता है। एक साधारण बाइनरी ट्री है - पेड़ों का प्रतिनिधित्व करने के दो तरीके हैं, गतिशील नोड प्रतिनिधित्व जो लिंक की गई सूची