DDSA
Advertisement

2064. Minimized Maximum of Products Distributed to Any Store

Time: O(n log max)
Space: O(1)

Approach

Binary search on max products per store; validate by summing ceil(qty/mid) for each product type.

2064.cs
C#
// Approach: Binary search on max products per store; validate by summing ceil(qty/mid) for each product type.
// Time: O(n log max) Space: O(1)

public class Solution
{
    public int MinimizedMaximum(int n, int[] quantities)
    {
        int l = 1;
        int r = quantities.Max();

        while (l < r)
        {
            int m = (l + r) / 2;
            if (NumStores(quantities, m) <= n)
                r = m;
            else
                l = m + 1;
        }

        return l;
    }

    private int NumStores(int[] quantities, int m)
    {
        // ceil(q / m)
        return quantities.Sum(q => (q - 1) / m + 1);
    }
}
Advertisement
Was this solution helpful?