C++ 中由陣列數字組成的兩個數字的最小和


描述

給定一個數字陣列,其中包含範圍為 0 至 9 的值。任務是找出由陣列的數字構成的兩個數字的最小和。請注意,我們必須使用給定陣列的所有數字

示例

如果輸入陣列為 {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

更新於: 2019-12-20

410 瀏覽

開始你的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.