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

सी ++ में 0 या 1 के रूप में आसन्न तत्वों के बीच अंतर के साथ अधिकतम लंबाई अनुवर्ती

हमें किसी भी आकार की एक सरणी दी गई है और कार्य दिए गए सरणी में बाद के तत्वों को 0 या 1 के रूप में आसन्न तत्वों के बीच अंतर के साथ खोजना है।

इनपुट - int arr[] ={ 2, 1, 5, 6, 3, 4, 7, 6}

आउटपुट − 0 या 1 के रूप में आसन्न तत्वों के बीच अंतर के साथ अधिकतम लंबाई अनुवर्ती है − 3

स्पष्टीकरण - 0 या 1 के अंतर वाले सरणी में आसन्न तत्वों का क्रम {2, 1} है। इसलिए, बाद की अधिकतम लंबाई 2 है।

इनपुट - int arr[] ={ 2, 1, 7, 6, 5}

आउटपुट − 0 या 1 के रूप में आसन्न तत्वों के बीच अंतर के साथ अधिकतम लंबाई अनुवर्ती है − 3

स्पष्टीकरण - 0 या 1 के अंतर के साथ एक सरणी में आसन्न तत्व {7, 6, 5} हैं। इसलिए, बाद की अधिकतम लंबाई 3 है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • एक प्रकार के पूर्णांकों की एक सरणी इनपुट करें जिसमें सकारात्मक और साथ ही नकारात्मक तत्व हो सकते हैं।
  • एक सरणी के आकार की गणना करें और आगे की कार्यक्षमता के लिए एक सरणी और आकार को फ़ंक्शन में पास करें।
  • एक इनपुट सरणी के समान आकार के साथ एक अस्थायी सरणी लें, मान लें कि अस्थायी [आकार] और दूसरा चर अधिकतम और इसे 0 पर सेट करें
  • 0 से लेकर किसी सरणी के आकार तक के लिए लूप प्रारंभ करें
  • लूप के अंदर, temp[i] को 1 के साथ सेट करें
  • एक और लूप शुरू करें, 1 से आकार तक
  • लूप के अंदर, एक और लूप j शुरू करें जो 0 से j तक i से कम है
  • लूप के अंदर, जांचें कि क्या आसन्न तत्व 0 या 1 के अंतर के साथ हैं, तो अस्थायी [i] अस्थायी के साथ [i] + 1
  • 0 से आकार तक के लिए लूप प्रारंभ करें
  • लूप के अंदर, जांचें कि क्या अधिकतम अस्थायी से कम है[i] फिर अधिकतम =अस्थायी सेट करें[i]
  • अधिकतम वापसी
  • परिणाम प्रिंट करें

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//function to calculate the maximum difference
int maximum_adja(int arr[], int size){
   int temp[size], maximum = 0;
   for (int i=0; i<size; i++){
      temp[i] = 1;
   }
   for (int i=1; i<size; i++){
      for (int j=0; j<i; j++){
         if (abs(arr[i] - arr[j]) <= 1 && temp[i] < temp[j] + 1){
            temp[i] = temp[j] + 1;
         }
      }
   }
   for (int i=0; i<size; i++){
      if (maximum < temp[i]){
         maximum = temp[i];
      }
   }
   return maximum;
}
int main(){
   int arr[] = {1, 5, 3, 7, 8, 9, 2};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Maximum length subsequence with difference between adjacent elements as either 0
   or 1 is: "<<maximum_adja(arr, size);
   return 0;
}

आउटपुट

Maximum length subsequence with difference between adjacent elements as either 0 or 1 is: 3

  1. सी++ में नोड और पूर्वज के बीच अधिकतम अंतर

    मान लीजिए कि हमारे पास एक बाइनरी ट्री की जड़ है, हमें अधिकतम मान V ज्ञात करना है जिसके लिए अलग-अलग नोड A और B मौजूद हैं जहाँ V =| A का मान - B का मान | और A, B का पूर्वज है। इसलिए यदि पेड़ जैसा है - तब आउटपुट 7 होगा। पूर्वज नोड अंतर [(8 - 3), (7 - 3), (8 - 1), (10-13)] की तरह हैं, उनमें से (8

  1. सी ++ में बदसूरत संख्याओं के साथ उप-सरणी की अधिकतम लंबाई

    समस्या कथन एन तत्वों की एक सरणी गिरफ्तारी [] को देखते हुए (0 ≤ गिरफ्तारी [i] 1000)। कार्य उप-सरणी की अधिकतम लंबाई को खोजना है जिसमें केवल बदसूरत संख्याएं हैं। बदसूरत संख्याएँ वे संख्याएँ होती हैं जिनके केवल अभाज्य गुणनखंड 2, 3 या 5 होते हैं। उदाहरण के लिए नीचे श्रृंखला से कुछ संख्याएँ हैं:1, 2, 3

  1. प्रत्येक मान के साथ मैट्रिक्स का अधिकतम निर्धारक या तो 0 या n C++ . में

    समस्या कथन हमने एक धनात्मक संख्या n दी है, और हमें एक 3*3 मैट्रिक्स खोजना है जो 0 या n के संयोजन से बनाया जा सकता है और जिसमें अधिकतम निर्धारक हों। उदाहरण अगर n =15 तो हम निम्नानुसार मैट्रिक्स बना सकते हैं - {{15, 15, 0}{0, 15, 15}{15, 0, 0}} 0 या n तत्वों वाले किसी भी 3*3 मैट्रिक्स के लिए, अधिकत