1283. Find the Smallest Divisor Given a Threshold (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution(object):
    def smallestDivisor(self, nums, threshold):
        """
        :type nums: List[int]
        :type threshold: int
        :rtype: int
        """
        l, r = 1, max(nums)
        while l < r:
            m = (l + r) // 2
            s = 0
            for num in nums:
                s += ceil(num * 1.0 / m)
            if s > threshold:
                l = m + 1
            else:
                r = m
        return l