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

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


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

हमें तीन सूचकांकों को ट्रैक करना होगा। वर्तमान सूचकांक (curr), पिछला शून्य सूचकांक (pz), और पिछले से पिछला शून्य सूचकांक (ppz)। अब सरणी को पार करें जब सरणी तत्व 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++ में बाइनरी ट्री लॉन्गेस्ट कंसिक्यूटिव सीक्वेंस - माता-पिता से बच्चा पथ 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 परिणाम हाँ होगा। यहां एक आयत मौजूद है, जिसके कोने 1 के साथ हैं। 1 0 1 0 1 0 1 0 1 इसे

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

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