हमें किसी भी आकार की एक सरणी दी गई है और कार्य दिए गए सरणी में बाद के तत्वों को 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