इस लेख में, हम n संख्याओं के दिए गए ऐरे को पुनर्व्यवस्थित करने की समस्या पर चर्चा करेंगे। मूल रूप से, हमें ऐरे से तत्वों का चयन करना होगा। प्रत्येक तत्व का चयन करने के लिए, हमें कुछ पॉइंट्स मिलते हैं जिनका मूल्यांकन वर्तमान तत्व के मान * वर्तमान तत्व से पहले चुने गए तत्वों की संख्या द्वारा किया जाएगा। आपको अधिकतम पॉइंट्स प्राप्त करने के लिए तत्वों का चयन करना चाहिए। उदाहरण के लिए:
इनपुट: arr[] = {3, 1, 5, 6, 3}
यदि हम दिए गए तरीके से तत्वों का चयन करते हैं, तो हमारे पॉइंट्स होंगे
= 3*0 + 1*1 + 5*2 + 6*3 + 3*4
= 41
पॉइंट्स को अधिकतम करने के लिए हमें तत्वों का चयन क्रम {1, 3, 3, 5, 6} में करना होगा
= 1*0 + 3*1 + 3*2 + 5*3 + 6*4
= 48 (अधिकतम)
आउटपुट: 48
इनपुट: arr[] = {2, 4, 7, 1, 8}
आउटपुट: 63
समाधान खोजने का दृष्टिकोण
उदाहरण को देखने पर, हमें पता चला कि अधिकतम पॉइंट्स प्राप्त करने के लिए, हमें तत्वों को सबसे छोटे से सबसे बड़े क्रम में चुनना होगा। समाधान खोजने का दृष्टिकोण है:
- दिए गए ऐरे को आरोही क्रम में सॉर्ट करें।
- इंडेक्स 0 से अंत तक तत्वों को चुनना शुरू करें।
- प्रत्येक तत्व को चुनने से प्राप्त पॉइंट्स की गणना करें।
उदाहरण
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
int main() {
int arr[] = {2, 4, 7, 1, 8};
int n = sizeof(arr) / sizeof(arr[0]);
// ऐरे को सॉर्ट करना
sort(arr, arr + n);
int points = 0;
// ऐरे को पार करना और पॉइंट्स की गणना करना
for (int i = 0; i < n; i++) {
points += arr[i] * i;
}
cout << "अधिकतम पॉइंट्स: " << points;
return 0;
}
आउटपुट
अधिकतम पॉइंट्स: 63
उपरोक्त कोड की व्याख्या
यह C++ कोड समझने में आसान है। पहले हम ऐरे को सॉर्ट कर रहे हैं और फिर फॉर लूप का उपयोग करके ऐरे को पार कर रहे हैं और शुरुआत से अंत तक प्रत्येक तत्व को चुनने से प्राप्त पॉइंट्स की गणना कर रहे हैं।
निष्कर्ष
इस लेख में, हम ऐरे में तत्वों को चुनने के क्रम की समस्या पर चर्चा करते हैं ताकि अधिकतम पॉइंट्स प्राप्त हो सकें जहां पॉइंट्स की गणना i * arr[i] द्वारा की जाती है। हम इस समस्या को हल करने और अधिकतम पॉइंट्स प्राप्त करने के लिए लालची दृष्टिकोण लागू करते हैं। साथ ही ऐसा करने के लिए C++ कोड पर चर्चा करते हैं, हम इस कोड को C, Java, Python आदि जैसी किसी अन्य भाषा में लिख सकते हैं। आशा है कि आपको यह लेख उपयोगी लगा।