解题思路:动态规划,当前需要的步数为目前需要移动到前面(从前面移动走)和从当前移动走的最大值,求出所有值后,取最大值。
class Solution(object):
def findMinMoves(self, machines):
"""
:type machines: List[int]
:rtype: int
"""
total = sum(machines)
length = len(machines)
if length == 0:
return 0
if total%length != 0:
return -1
avg = total/length
maxn = 0
balance = 0
for m in machines:
balance += m-avg
maxn = max(maxn,max(m-avg,abs(balance)))
return maxn