हमें पूर्णांकों की एक सरणी दी गई है। लक्ष्य अभिव्यक्ति के मूल्य को अधिकतम करना है -
एआर [जे] -एआर [आई] + एआर [एल] -एआर [के]; i
हम सभी तत्वों का पता लगाकर ऐसा करेंगे और व्यंजक के मूल्य की गणना करेंगे। यदि यह अब तक अधिकतम पाया गया है तो इसे स्टोर करें और अंत में वापस आएं।
इनपुट
arr[]= { 1,2,3,4 }
आउटपुट
Maximum value for above expression is : 2
स्पष्टीकरण - i
arr[j]-arr[i]+arr[l]-arr[k]=2-1+4-3=1+1=2
इनपुट
arr[]= { 5,5,5,5,5 }
आउटपुट
Maximum value for above expression is : 0
स्पष्टीकरण − i
arr[j]-arr[i]+arr[l]-arr[k]=5-5+5-5=0
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक सरणी a[] संख्याओं को संग्रहीत करता है।
-
फ़ंक्शन maxSum(int arr[], int n) इनपुट के रूप में सरणी और इसकी लंबाई n लेता है और arr[j]-arr[i]+arr[l]-arr[k] का अधिकतम मान लौटाता है जैसे कि i
-
वेरिएबल योग का उपयोग arr[j]-arr[i] और arr[l]-arr[k] के योग को स्टोर करने के लिए किया जाता है।
-
प्रारंभिक अधिकतम राशि के रूप में maxx=arr[0] प्रारंभ करें।
-
i=0, j=1,k=2, l=3 से i
तक ट्रैवर्स सरणी -
i,j,k,l में प्रत्येक अनुक्रमणिका के लिए arr[j]-arr[i]+arr[l]-arr[k] की गणना करें और योग में स्टोर करें
-
यदि वर्तमान योग>=अधिकतम अद्यतन अधिकतम।
-
अंत में वांछित परिणाम के रूप में अधिकतम वापसी करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; // function to maximize the sum of selected numbers int maximizeSum(int arr[], int n) { int sum=0; int maxx=arr[0]; for(int i=0;i<n-3;i++) for(int j=i+1;j<n-2;j++) for(int k=j+1;k<n-1;k++) for(int l=k+1;l<n;l++){ sum=arr[j]-arr[i]+arr[l]-arr[k]; if(sum>=maxx) maxx=sum; } return maxx; } int main(){ int a[] = {5, 3, 9, 2, 20}; int n = sizeof(a) / sizeof(a[0]); cout <<"Maximized value is :"<< maximizeSum(a, n); return 0; }
आउटपुट
Maximized value is :24