517. 超级洗衣机
贪心算法
class Solution {
public:
int findMinMoves(vector<int>& machines) {
int m =0;
int n=machines.size();
for(int i : machines){
m +=i;
}
if (n ==0 ||m%n != 0 ) return -1;
int avg = m /n; //已经知道最后每个洗衣机的衣服数量了
int ans =0 , sum = 0;
for(int num : machines){
num -= avg;//多了肯定要把衣服移出来或者加进去,移出或者加入的步骤
sum += num;// 0到改位置的所有洗衣机的就看成一台洗衣机,需要移出或加入的数量
ans = max(ans, max(abs(sum),num));// 选取最大的
}
return ans;
}
};