-
-
Notifications
You must be signed in to change notification settings - Fork 48
Expand file tree
/
Copy path2256-minimum-average-difference.py
More file actions
28 lines (23 loc) · 894 Bytes
/
2256-minimum-average-difference.py
File metadata and controls
28 lines (23 loc) · 894 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# time complexity: O(n)
# space complexity: O(n)
from typing import List
class Solution:
def minimumAverageDifference(self, nums: List[int]) -> int:
prefixSum = [0 for _ in range(len(nums))]
prefixSum[0] = nums[0]
for i in range(1, len(nums)):
prefixSum[i] = prefixSum[i - 1] + nums[i]
result = -1
minDiff = float('inf')
for i in range(len(nums)):
left = prefixSum[i] // (i + 1)
right = (prefixSum[-1] - prefixSum[i]) // (len(nums) -
i - 1) if len(nums) - i - 1 != 0 else 0
if minDiff > abs(left - right):
minDiff = abs(left - right)
result = i
return result
nums = [2, 5, 3, 9, 5, 3]
print(Solution().minimumAverageDifference(nums))
nums = [0]
print(Solution().minimumAverageDifference(nums))