day-13 拿出最少数目的魔法豆

发布时间:2024年01月18日

在这里插入图片描述
思路
将beans的每个数值当做袋子最后豆子剩余数,选择取豆子最少的一种方案

解题方法
//从小到大,将每个beans[i]作为剩余豆子数
//对于beans[i],i之前的全为零,i之后的全变为beans[i]
ans=Math.min(ans,sum-(beans.length-i)*beans[i]);//sum-(beans.length-i)*beans[i]表示取走的豆子总数

时间复杂度: O(n)

空间复杂度: O(1)

Code

class Solution {
    public long minimumRemoval(int[] beans) {
        Arrays.sort(beans);
        long sum =0;
        for(int num:beans)sum+=num;
        long ans=sum;
        for(int i=0;i< beans.length;++i){
            //从小到大,将每个beans[i]作为剩余豆子数
            //对于beans[i],i之前的全为零,i之后的全变为beans[i]
            ans=Math.min(ans,sum-(long)(beans.length-i)*beans[i]);//sum-(beans.length-i)*beans[i]表示取走的豆子总数
        }
        return ans;
    }
}

注:参考了答案。。。。。。。

文章来源:https://blog.csdn.net/qq_53568730/article/details/135683735
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。