Minimum Average Difference LeetCode solution in C++

1
class Solution {
2
public:
3
int minimumAverageDifference(vector<int> &nums) {
4
int n(size(nums)), minAverageDifference(INT_MAX), index;
5

6
long long sumFromFront(0), sumFromEnd(0);
7
for (auto &num : nums) sumFromEnd += num;
8

9
for (int i = 0; i < n; i++) {
10
sumFromFront += nums[i];
11
sumFromEnd -= nums[i];
12
int a = sumFromFront / (i + 1); // average of the first i + 1 elements.
13
int b =
14
(i == n - 1) ? 0 : sumFromEnd / (n - i - 1); // average of the last n - i - 1 elements.
15

16
if (abs(a - b) < minAverageDifference) {
17
minAverageDifference = abs(a - b);
18
index = i;
19
}
20
}
21
return index;
22
}
23
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0