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