在 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 次浏览

开启您的 职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.