517. 超级洗衣机

简介: 517. 超级洗衣机

前言

假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。

在每一步操作中,你可以选择任意 m (1 <= m <= n) 台洗衣机,与此同时将每台洗衣机的一件衣服送到相邻的一台洗衣机。

给定一个整数数组 machines 代表从左至右每台洗衣机中的衣物数量,请给出能让所有洗衣机中剩下的衣物的数量相等的 最少的操作步数 。如果不能使每台洗衣机中衣物的数量相等,则返回 -1 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/super-washing-machines
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

一、解题思路

思想传统:算单点的瓶颈,最后看总答案跟单点瓶颈之间的关系
假设来到某一台(i号)洗衣机 衣服数量?
在这里插入图片描述
假设每台机器该有的平均数我们知道
在这里插入图片描述
左侧整体欠15件。而它右侧整体多10件,假设位置永远有衣服可以搬,至少要几轮。
在这里插入图片描述
至少要15轮
在这里插入图片描述
i如果衣服特别少就可能左右两侧都要给它衣服
在这里插入图片描述
最少也是需要15轮
在这里插入图片描述
如果左侧欠15件。右侧7件,我问你是要搬多少轮,两侧都指望着i出力,它每次只能扔一件。
因此需要22轮

先算一个总衣服的数量,你再算一个左侧部分的累加和, i位置自己有值。
左侧部分欠几件还多几件,右侧部分欠几件还是多几件。都能算出来
有一个衣服的总数量,有一个i左侧的累加和,接下来你到任何一个i位置。
你左侧,右侧到底是多还是少?你都能算出来
在这里插入图片描述

根据我们的策略。我们算出零位置时候的瓶颈要多少轮,1位置时候的瓶颈要多少轮,
2位置时候的瓶颈要多少轮,每一个位 置的瓶颈要多论。结论是所有答案中最痛的点求的max,决定了整体的瓶颈。
因为当最痛瓶颈满足的同时,其他的瓶颈同步就解决了
因为每一轮他都可以并行的搬。 所以你最痛的瓶颈决定了一共的轮数。 没有为什么数学证明很麻烦

代码

class Solution {
    public int findMinMoves(int[] arr) {
        if (arr == null || arr.length == 0) {
            return 0;
        }
        int size=arr.length;
        int sum=0;
        for(int i=0;i<size;i++){
            sum+=arr[i];
        }
        if(sum%size!=0){
            return -1;
        }
        int avg=sum/size;
        int leftSum=0;
        int ans=0;
        for(int i=0;i<size;i++){
            // 左边差的数量
            int leftRes=leftSum-i*avg;
            // 右边差的数量
            int rightRes=(sum-leftSum-arr[i])-(size-i-1)*avg;
            if(leftRes<0&&rightRes<0){
                ans=Math.max(ans,Math.abs(leftRes)+Math.abs(rightRes));
            }else{
                ans=Math.max(ans,Math.max(Math.abs(leftRes),Math.abs(rightRes)));
            }
            leftSum+=arr[i];
        }
        return ans;
    }
}
相关文章
|
1月前
|
Web App开发 移动开发 小程序
看我如何让手机秒变扫码枪
为解决无扫码枪问题,作者受到微信小程序“超级扫码枪”启发,决定自制手机扫码到电脑的应用。项目需求是手机扫描条形码或二维码后实时传送到电脑。实现步骤包括:电脑端用Java Swing和Robot模拟键盘输入,手机端H5调用摄像头扫码(借助html5-qrcode库),并通过WebSocket服务将结果发送至电脑。项目源码及演示视频链接提供。
303 5
|
网络协议 Python
517. 超级洗衣机
根据我们的策略。我们算出零位置时候的瓶颈要多少轮,1位置时候的瓶颈要多少轮, 2位置时候的瓶颈要多少轮,每一个位 置的瓶颈要多论。结论是所有答案中最痛的点求的max,决定了整体的瓶颈。 因为当最痛瓶颈满足的同时,其他的瓶颈同步就解决了 因为每一轮他都可以并行的搬。 所以你最痛的瓶颈决定了一共的轮数。 没有为什么数学证明很麻烦
83 0
|
传感器 数据安全/隐私保护 UED
知趣网谢阗地:我们为啥要做车载空气净化器?
当雾霾天不只影响到以北京为代表的少数地区时,空气质量和呼吸环境开始前所未有地被全国人民所关注。关心个人及他人健康让人们也开始愿意为更好的空气环境付出额外的成本,空气净化设备随之大有井喷之势。
165 0
知趣网谢阗地:我们为啥要做车载空气净化器?
|
编解码
投影仪还是电视机?你的客厅想拿什么装点?
投影仪还是电视机?你的客厅想拿什么装点?
177 0
投影仪还是电视机?你的客厅想拿什么装点?
|
传感器 人工智能 算法
音箱先成“精”,“耳机精”还能吃到肉不?
近日,国产耳机品牌1MORE联合腾讯、咕咚推出了一款智能运动耳机iBFree 2,正式拉开了AI耳机混战的序幕。与还处在市场浑沌期的AI耳机不同,AI音箱在近两年已经迎来了集体爆发。音箱先成“精”,那么“耳机精”还能吃到肉不?
音箱先成“精”,“耳机精”还能吃到肉不?
飞机改装服务
本文研究全球及中国市场飞机改装服务现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
飞机静电放电器
本报告研究全球与中国市场飞机静电放电器的产能、产量、销量、销售额、价格及未来趋势。重点分析全球与中国市场的主要厂商产品特点、产品规格、价格、销量、销售收入及全球和中国市场主要生产商的市场份额