在 C++ 中找到需要新增的最小值以使陣列平衡


假設我們有一個包含 n 個元素的陣列 A。並且 n 是偶數。我們必須找到需要使陣列平衡的值。由於陣列的大小是偶數,因此我們可以將其分成兩半。左半部分的和與右半部分的和需要平衡。因此,如果陣列像 A = [1, 2, 3, 2, 5, 3],則左半部分的和為 6,右半部分的和為 10。因此,我們需要 4 來平衡陣列。

任務很簡單,我們將找到第一部分和第二部分的和,然後找到絕對差並返回。

示例

 線上演示

#include<iostream>
#include<cmath>
using namespace std;
int getValueToBalance(int a[], int n) {
   int left_sum = 0;
   for (int i = 0; i < n/2; i++)
   left_sum += a[i];
   int right_sum = 0;
   for (int i = n/2; i < n; i++)
   right_sum += a[i];
   return abs(left_sum - right_sum);
}
int main() {
   int arr[] = {1, 2, 3, 2, 5, 3};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "The number for balancing: " << getValueToBalance(arr, n);
}

輸出

The number for balancing: 4

更新於: 2019年12月17日

167 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告