aboutsummaryrefslogtreecommitdiff
path: root/other/min_avg_diff.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/min_avg_diff.cpp')
-rw-r--r--other/min_avg_diff.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/other/min_avg_diff.cpp b/other/min_avg_diff.cpp
new file mode 100644
index 0000000..4bbc2b1
--- /dev/null
+++ b/other/min_avg_diff.cpp
@@ -0,0 +1,27 @@
+#include "leetcode.h"
+
+class Solution {
+public:
+ int minimumAverageDifference(vector<int> &nums) {
+ long i = 0, j = 0, m = LONG_MAX, k, d;
+ long pfx = 0, sfx = accumulate(nums.begin(), nums.end(), 0L);
+ for (int n : nums) {
+ pfx += n;
+ sfx -= n;
+ j += 1;
+ k = nums.size() - j;
+ d = abs(pfx / j - sfx / (k ? k : 1));
+ if (d < m) {
+ m = d;
+ i = j - 1;
+ }
+ }
+ return i;
+ }
+};
+
+int main() {
+ Solution obj;
+ vector<int> nums = {2, 5, 3, 9, 5, 3};
+ cout << obj.minimumAverageDifference(nums);
+}