517.超级洗衣机
题目描述
思路:贪心
由于一次可以使用多个洗衣机送衣服,所以只要找到送最多次的洗衣机即可。另外,一个洗衣机往两侧送衣服的话需要叠加统计次数,所以特殊处理。
class Solution:
def findMinMoves(self, machines: List[int]) -> int:
total, n = sum(machines), len(machines)
if total % n:
return -1
avg = total // n
ans = cur = 0
for m in machines:
if cur < 0 and cur + m -avg > 0:
ans = max(ans, m - avg)
cur += m - avg
else:
cur += m - avg
ans = max(ans, abs(cur))
return ans