คำอธิบาย
กำหนดอาร์เรย์ของตัวเลขที่มีค่าตั้งแต่ 0 ถึง 9 ภารกิจคือการหาผลรวมต่ำสุดที่เป็นไปได้ของตัวเลขสองตัวที่เกิดขึ้นจากตัวเลขของอาร์เรย์ โปรดทราบว่าเราต้องใช้ alldigits ของอาร์เรย์ที่กำหนด
ตัวอย่าง
หากอาร์เรย์อินพุตคือ {7, 5, 1, 3, 2, 4} ผลรวมขั้นต่ำคือ 382 ตาม เราสามารถสร้างตัวเลขสองตัว 135 และ 247 ได้
อัลกอริทึม
- เรียงลำดับอาร์เรย์จากน้อยไปมาก
- สร้างตัวเลขสองตัวโดยเลือกตัวเลขจากอาร์เรย์ที่จัดเรียง หรือจากดัชนีคู่และคี่
ตัวอย่าง
#include <bits/stdc++.h> using 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