विवरण
एक ऐरे दिया गया है जिसमें 0 से 9 तक के मान वाले अंक हैं। कार्य ऐरे के अंकों से बनी दो संख्याओं का न्यूनतम संभव योग ढूंढना है। कृपया ध्यान दें कि हमें दिए गए ऐरे के सभी अंकों का उपयोग करना है
उदाहरण
यदि इनपुट ऐरे है {7, 5, 1, 3, 2, 4} तो न्यूनतम योग 382 है, क्योंकि हम दो संख्या 135 और 247 बना सकते हैं।
एल्गोरिदम
- ऐरे को आरोही क्रम में सॉर्ट करें
- सॉर्ट किए गए ऐरे से वैकल्पिक रूप से एक अंक चुनकर दो संख्याएं बनाएं यानी इवन और ऑड इंडेक्स से
उदाहरण
#includeusing namespace std; int getMinSum(int *arr, int n) { sort(arr, arr + n); int a = 0; int b = 0; for (int i = 0; i < n; ++i) { if (i % 2 == 0) { a = a * 10 + arr[i]; } else { b = b * 10 + arr[i]; } } return a + b; } int main() { int arr[] = {7, 5, 1, 3, 2, 4}; int n = sizeof(arr) / sizeof(arr[0]); cout << "Minimum sum = " << getMinSum(arr, n) << endl; return 0; }
जब आप उपरोक्त प्रोग्राम को कंपाइल और 실행 करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है -
आउटपुट
Minimum sum = 382