Medium
Minimum Average Difference — Python
Full explanation · Time O(n) · Space O(1)
# Time: O(n)
# Space: O(1)
# prefix sum
class Solution(object):
def minimumAverageDifference(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
total = sum(nums)
mn, idx = float("inf"), -1
prefix = 0
for i, x in enumerate(nums):
prefix += x
a = prefix//(i+1)
b = (total-prefix)//(len(nums)-(i+1)) if i+1 < len(nums) else 0
diff = abs(a-b)
if diff < mn:
mn, idx = diff, i
return idx